[cig-commits] r6653 - short/3D/PyLith/trunk/libsrc/faults
brad at geodynamics.org
brad at geodynamics.org
Tue Apr 24 11:55:27 PDT 2007
Author: brad
Date: 2007-04-24 11:55:27 -0700 (Tue, 24 Apr 2007)
New Revision: 6653
Modified:
short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
Log:
Switched to specifying parameters and slip field on section over fault mesh (should be slightly more efficient).
Modified: short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc 2007-04-24 18:40:36 UTC (rev 6652)
+++ short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc 2007-04-24 18:55:27 UTC (rev 6653)
@@ -69,7 +69,7 @@
// Get fault vertices
const ALE::Obj<Mesh::label_sequence>& vertices = faultMesh->depthStratum(0);
- // Create sections for fields
+ // Create and allocate sections for parameters
delete _parameters;
_parameters = new feassemble::ParameterManager(faultMesh);
if (0 == _parameters)
@@ -82,33 +82,25 @@
const ALE::Obj<real_section_type>& finalSlip =
_parameters->getReal("final slip");
assert(!finalSlip.isNull());
+ finalSlip->setFiberDimension(faultMesh->depthStratum(0), 3);
+ faultMesh->allocate(finalSlip);
// Parameter: slip initiation time
_parameters->addReal("slip time");
const ALE::Obj<real_section_type>& slipTime =
_parameters->getReal("slip time");
assert(!slipTime.isNull());
+ slipTime->setFiberDimension(faultMesh->depthStratum(0), 1);
+ faultMesh->allocate(slipTime);
// Parameter: peak slip rate
_parameters->addReal("peak rate");
const ALE::Obj<real_section_type>& peakRate =
_parameters->getReal("peak rate");
assert(!peakRate.isNull());
-
- // Allocate parameters
- const Mesh::label_sequence::iterator vBegin = vertices->begin();
- const Mesh::label_sequence::iterator vEnd = vertices->end();
- for (Mesh::label_sequence::iterator v_iter=vBegin;
- v_iter != vEnd;
- ++v_iter) {
- finalSlip->setFiberDimension(*v_iter, 3);
- slipTime->setFiberDimension(*v_iter, 1);
- peakRate->setFiberDimension(*v_iter, 1);
- } // for
- faultMesh->allocate(finalSlip);
- faultMesh->allocate(slipTime);
+ peakRate->setFiberDimension(faultMesh->depthStratum(0), 1);
faultMesh->allocate(peakRate);
-
+
// Open databases and set query values
_dbFinalSlip->open();
const char* slipValues[] = {"strike-slip", "dip-slip", "fault-opening"};
@@ -132,6 +124,8 @@
double slipData[3];
double slipTimeData;
double peakRateData;
+ const Mesh::label_sequence::iterator vBegin = vertices->begin();
+ const Mesh::label_sequence::iterator vEnd = vertices->end();
for (Mesh::label_sequence::iterator v_iter=vBegin;
v_iter != vEnd;
++v_iter) {
@@ -179,10 +173,7 @@
_dbPeakRate->close();
// Allocate slip field
- for (Mesh::label_sequence::iterator v_iter=vBegin;
- v_iter != vEnd;
- ++v_iter)
- _slipField->setFiberDimension(*v_iter, 3);
+ _slipField->setFiberDimension(faultMesh->depthStratum(0), 3);
faultMesh->allocate(_slipField);
} // initialize
More information about the cig-commits
mailing list