[cig-commits] r6592 - in short/3D/PyLith/trunk: libsrc/faults
unittests/libtests/faults
knepley at geodynamics.org
knepley at geodynamics.org
Tue Apr 17 12:21:14 PDT 2007
Author: knepley
Date: 2007-04-17 12:21:14 -0700 (Tue, 17 Apr 2007)
New Revision: 6592
Modified:
short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc
short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc
Log:
Now correctly adding cohesive elements
Modified: short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc 2007-04-17 18:47:48 UTC (rev 6591)
+++ short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc 2007-04-17 19:21:14 UTC (rev 6592)
@@ -56,7 +56,7 @@
for(sieve_type::traits::supportSequence::iterator c_iter = cBegin;
c_iter != cEnd;
++c_iter) {
- const unsigned int faceSize = 3; //_numFaceVertices(*c_iter, mesh);
+ const unsigned int faceSize = _numFaceVertices(*c_iter, mesh);
if (debug)
std::cout << " Checking cell " << *c_iter << std::endl;
@@ -109,7 +109,6 @@
} // if
} // for
} // for
- faultSieve->view("Fault sieve");
fault->setSieve(faultSieve);
fault->stratify();
faultCells.clear();
@@ -119,7 +118,7 @@
// Add new shadow vertices
const ALE::Obj<Mesh::label_sequence>& fVertices = fault->depthStratum(0);
const ALE::Obj<Mesh::label_sequence>& vertices = mesh->depthStratum(0);
- Mesh::point_type newVertex = *vertices->begin() + vertices->size();
+ Mesh::point_type newPoint = sieve->base()->size() + sieve->cap()->size();
std::map<int,int> vertexRenumber;
for(Mesh::label_sequence::iterator v_iter = fVertices->begin();
@@ -128,7 +127,7 @@
if (debug)
std::cout << "Duplicating " << *v_iter << " to "
<< vertexRenumber[*v_iter] << std::endl;
- vertexRenumber[*v_iter] = newVertex++;
+ vertexRenumber[*v_iter] = newPoint++;
} // for
// Split the mesh along the fault sieve and create cohesive elements
@@ -137,7 +136,7 @@
for(Mesh::label_sequence::iterator f_iter = faces->begin();
f_iter != faces->end();
- ++f_iter) {
+ ++f_iter, ++newPoint) {
if (debug)
std::cout << "Considering fault face " << *f_iter << std::endl;
const ALE::Obj<sieve_type::traits::supportSequence>& cells =
@@ -168,7 +167,28 @@
++v_iter) {
sieve->addArrow(*v_iter, cell, color++);
} // for
+ // Adding cohesive cell (not interpolated)
+ const ALE::Obj<sieve_type::traits::coneSequence>& fCone = faultSieve->cone(*f_iter);
+ const sieve_type::traits::coneSequence::iterator fBegin = fCone->begin();
+ const sieve_type::traits::coneSequence::iterator fEnd = fCone->end();
+ color = 0;
+
+ if (debug)
+ std::cout << " Creating cohesive cell " << newPoint << std::endl;
+ for(sieve_type::traits::coneSequence::iterator v_iter = fBegin; v_iter != fEnd;
+ ++v_iter) {
+ if (debug)
+ std::cout << " vertex " << *v_iter << std::endl;
+ sieve->addArrow(*v_iter, newPoint, color++);
+ }
+ for(sieve_type::traits::coneSequence::iterator v_iter = fBegin; v_iter != fEnd;
+ ++v_iter) {
+ if (debug)
+ std::cout << " vertex " << vertexRenumber[*v_iter] << std::endl;
+ sieve->addArrow(vertexRenumber[*v_iter], newPoint, color++);
+ }
} // for
+ mesh->view("Mesh with Cohesive Elements");
// Fix coordinates
const ALE::Obj<real_section_type>& coordinates =
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc 2007-04-17 18:47:48 UTC (rev 6591)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc 2007-04-17 19:21:14 UTC (rev 6592)
@@ -31,6 +31,7 @@
void
pylith::faults::TestFaultCohesive::testAdjustTopologyLine(void)
{ // testAdjustTopologyLine
+ // Also have "data/meshTri3A_orig.txt"
const char* filename = "data/meshTet4A_orig.txt";
_testAdjustTopology(filename);
} // testAdjustTopologyLine
More information about the cig-commits
mailing list