[cig-commits] [commit] master: Fix blank/cleared classes (828fe71)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Tue Dec 2 13:56:21 PST 2014


Repository : https://github.com/geodynamics/vq

On branch  : master
Link       : https://github.com/geodynamics/vq/compare/06902a05cf4d70bc94c85d1c195c073d4e74cdad...c935dfd33f870a081b6c01cce97a060ad1cbdbda

>---------------------------------------------------------------

commit 828fe71d4074d907d6a25c9a49827ddc61969ea9
Author: Eric Heien <emheien at ucdavis.edu>
Date:   Thu Nov 27 00:25:29 2014 -0800

    Fix blank/cleared classes


>---------------------------------------------------------------

828fe71d4074d907d6a25c9a49827ddc61969ea9
 quakelib/src/QuakeLib.h     | 21 ++++++++-------------
 quakelib/src/QuakeLibIO.cpp | 19 ++++++++++++++++---
 quakelib/src/QuakeLibIO.h   | 19 +++++++++----------
 quakelib/src/QuakeLibUtil.h |  2 +-
 4 files changed, 34 insertions(+), 27 deletions(-)

diff --git a/quakelib/src/QuakeLib.h b/quakelib/src/QuakeLib.h
index e74b072..a0ba978 100644
--- a/quakelib/src/QuakeLib.h
+++ b/quakelib/src/QuakeLib.h
@@ -74,13 +74,7 @@ namespace quakelib {
 
         public:
             SimElement(void) {
-                _vert[0] = Vec<3>::nan_vec();
-                _vert[1] = Vec<3>::nan_vec();
-                _vert[2] = Vec<3>::nan_vec();
-                _is_quad = false;
-                _rake = _slip_rate = _aseis_factor = nan("");
-                _lame_mu = _lame_lambda = nan("");
-                _static_strength = _dynamic_strength = _max_slip = nan("");
+                clear();
             }
             //! Calculate the stress tensor at a location with Lame parameters lambda and mu
             //! caused by this element moving unit_slip meters.
@@ -194,12 +188,13 @@ namespace quakelib {
 
             //! Clear all variables for this element.
             void clear(void) {
-                for (unsigned int i=0; i<3; ++i) {
-                    _vert[i] = Vec<3>();
-                }
-
-                _rake = _slip_rate = _aseis_factor = _lame_mu = _lame_lambda = nan("");
-                _static_strength = _dynamic_strength = _max_slip = nan("");
+                _vert[0] = Vec<3>::nan_vec();
+                _vert[1] = Vec<3>::nan_vec();
+                _vert[2] = Vec<3>::nan_vec();
+                _is_quad = false;
+                _rake = _slip_rate = _aseis_factor = std::numeric_limits<double>::quiet_NaN();
+                _lame_mu = _lame_lambda = std::numeric_limits<double>::quiet_NaN();
+                _static_strength = _dynamic_strength = _max_slip = std::numeric_limits<double>::quiet_NaN();
             };
 
             //! Returns a unit vector along the direction of fault dip.
diff --git a/quakelib/src/QuakeLibIO.cpp b/quakelib/src/QuakeLibIO.cpp
index 88d2b84..a1c5787 100644
--- a/quakelib/src/QuakeLibIO.cpp
+++ b/quakelib/src/QuakeLibIO.cpp
@@ -1422,7 +1422,6 @@ void quakelib::ModelWorld::write_vertex_hdf5(const hid_t &data_file) const {
         field_sizes[i] = descs[i].size;
     }
 
-    // TODO: factor this out?
     blank_vertex = ModelVertex().data();
 
     // Fill in the data for the vertices
@@ -2480,6 +2479,12 @@ void quakelib::ModelSweeps::setup_sweeps_hdf5(const hid_t &data_file) {
         field_sizes[i] = descs[i].size;
     }
 
+    blank_sweep._event_number = blank_sweep._sweep_number = UNDEFINED_EVENT_ID;
+    blank_sweep._element_id = UNDEFINED_ELEMENT_ID;
+    blank_sweep._slip = blank_sweep._area = blank_sweep._mu = std::numeric_limits<float>::quiet_NaN();
+    blank_sweep._shear_init = blank_sweep._shear_final = std::numeric_limits<float>::quiet_NaN();
+    blank_sweep._normal_init = blank_sweep._normal_final = std::numeric_limits<float>::quiet_NaN();
+
     // Create the sweep table
     res = H5TBmake_table("Sweeps Table",
                          data_file,
@@ -2716,6 +2721,14 @@ void quakelib::ModelEvent::setup_event_hdf5(const hid_t &data_file) {
         field_sizes[i] = descs[i].size;
     }
 
+    blank_event._event_number = UNDEFINED_EVENT_ID;
+    blank_event._event_year = std::numeric_limits<float>::quiet_NaN();
+    blank_event._event_magnitude = std::numeric_limits<float>::quiet_NaN();
+    blank_event._event_trigger = UNDEFINED_ELEMENT_ID;
+    blank_event._shear_stress_init = blank_event._shear_stress_final = std::numeric_limits<float>::quiet_NaN();
+    blank_event._normal_stress_init = blank_event._normal_stress_final = std::numeric_limits<float>::quiet_NaN();
+    blank_event._start_sweep_rec = blank_event._end_sweep_rec = UNDEFINED_EVENT_ID;
+
     // Create the event table
     res = H5TBmake_table("Event Table",
                          data_file,
@@ -2885,7 +2898,7 @@ void quakelib::ModelStress::setup_stress_hdf5(const hid_t &data_file) {
     }
 
     blank_data._element_id = UNDEFINED_ELEMENT_ID;
-    blank_data._shear_stress = blank_data._normal_stress = nan("");
+    blank_data._shear_stress = blank_data._normal_stress = std::numeric_limits<float>::quiet_NaN();
 
     // Create the sweep table
     res = H5TBmake_table("Stress Table",
@@ -3074,7 +3087,7 @@ void quakelib::ModelStressState::setup_stress_state_hdf5(const hid_t &data_file)
         field_sizes[i] = descs[i].size;
     }
 
-    blank_data._year = nan("");
+    blank_data._year = std::numeric_limits<float>::quiet_NaN();
     blank_data._event_num = UNDEFINED_EVENT_ID;
     blank_data._sweep_num = UNDEFINED_EVENT_ID;
     blank_data._end_rec = UNDEFINED_ELEMENT_ID;
diff --git a/quakelib/src/QuakeLibIO.h b/quakelib/src/QuakeLibIO.h
index 22f9cd7..f3860d6 100644
--- a/quakelib/src/QuakeLibIO.h
+++ b/quakelib/src/QuakeLibIO.h
@@ -770,14 +770,7 @@ namespace quakelib {
 
         public:
             ModelEvent(void) {
-                _event_trigger_on_this_node = false;
-
-                _data._event_number = UNDEFINED_EVENT_ID;
-                _data._event_year = _data._event_magnitude = nan("");
-                _data._event_trigger = UNDEFINED_EVENT_ID;
-                _data._shear_stress_init = _data._shear_stress_final = nan("");
-                _data._normal_stress_init = _data._normal_stress_final = nan("");
-                _data._start_sweep_rec = _data._end_sweep_rec = UNDEFINED_EVENT_ID;
+                clear();
             }
             typedef EventElementMap::iterator iterator;
             typedef EventElementMap::const_iterator const_iterator;
@@ -939,9 +932,15 @@ namespace quakelib {
             }
 
             void clear(void) {
+                _event_trigger_on_this_node = false;
+
                 _data._event_number = UNDEFINED_EVENT_ID;
-                _data._event_year = nan("");
+                _data._event_year = _data._event_magnitude = std::numeric_limits<double>::quiet_NaN();
                 _data._event_trigger = UNDEFINED_ELEMENT_ID;
+                _data._shear_stress_init = _data._shear_stress_final = std::numeric_limits<double>::quiet_NaN();
+                _data._normal_stress_init = _data._normal_stress_final = std::numeric_limits<double>::quiet_NaN();
+                _data._start_sweep_rec = _data._end_sweep_rec = UNDEFINED_EVENT_ID;
+
                 _sweeps.clear();
                 _total_slip.clear();
             }
@@ -1083,7 +1082,7 @@ namespace quakelib {
 
             void clear(void) {
                 _stress.clear();
-                _times._year = nan("");
+                _times._year = std::numeric_limits<float>::quiet_NaN();
                 _times._event_num = UNDEFINED_EVENT_ID;
                 _times._sweep_num = UNDEFINED_EVENT_ID;
                 _times._start_rec = UNDEFINED_EVENT_ID;
diff --git a/quakelib/src/QuakeLibUtil.h b/quakelib/src/QuakeLibUtil.h
index 5ab2e2b..2a02978 100644
--- a/quakelib/src/QuakeLibUtil.h
+++ b/quakelib/src/QuakeLibUtil.h
@@ -132,7 +132,7 @@ namespace quakelib {
             static Vec<dim> nan_vec(void) {
                 Vec<dim> new_vec;
 
-                for (unsigned int i=0; i<dim; ++i) new_vec[i] = nan("");
+                for (unsigned int i=0; i<dim; ++i) new_vec[i] = std::numeric_limits<double>::quiet_NaN();
 
                 return new_vec;
             };



More information about the CIG-COMMITS mailing list