[cig-commits] r8284 - in short/3D/PyLith/trunk: . libsrc/faults
pylith/problems tests/1d/line2 unittests/libtests/faults
unittests/libtests/faults/data
brad at geodynamics.org
brad at geodynamics.org
Mon Nov 12 16:56:31 PST 2007
Author: brad
Date: 2007-11-12 16:56:30 -0800 (Mon, 12 Nov 2007)
New Revision: 8284
Modified:
short/3D/PyLith/trunk/TODO
short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc
short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.hh
short/3D/PyLith/trunk/pylith/problems/Explicit.py
short/3D/PyLith/trunk/tests/1d/line2/dislocation_dyn.cfg
short/3D/PyLith/trunk/tests/1d/line2/dislocation_dyn_sliprate.spatialdb
short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinData.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinData.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataHex8.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataHex8.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataLine2.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataLine2.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4e.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4e.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3d.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3d.hh
short/3D/PyLith/trunk/unittests/libtests/faults/slipth.py
Log:
Fixed bug in FaultCohesiveKin- we don't want internal forces in the residual unless we are solving for the displacement increment. Updated unit tests so that we test the residuals for each case. This didn't show up before because the internal forces were always zero in the elastic quasi-static solution.
Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/TODO 2007-11-13 00:56:30 UTC (rev 8284)
@@ -6,10 +6,12 @@
1. Fix memory imbalance associated with distribution.
- 2. Fix problems with buildbot on darwin.
+ 2. Fix cohesive cell creation (hex8 and tet4).
- 3. Add check to make sure every material in mesh has a material model.
+ 3. Fix problems with buildbot on darwin? (is binary ok?)
+ 4. Add check to make sure every material in mesh has a material model.
+
Add check for overlapping of material ids for bulk and cohesive
cells.
Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -424,7 +424,7 @@
// Get slip at cells vertices (only valid at constraint vertices)
mesh->restrict(slip, *c_iter, &cellSlip[0], cellSlip.size());
- // Get slip at cells vertices (valid at all cohesive vertices)
+ // Get solution at cells vertices (valid at all cohesive vertices)
mesh->restrict(solution, *c_iter, &cellSoln[0], cellSoln.size());
for (int iConstraint=0; iConstraint < numConstraintVert; ++iConstraint) {
@@ -446,23 +446,25 @@
cellResidual[indexK*spaceDim+iDim] =
cellSlip[iConstraint*spaceDim+iDim];
- // Get orientation at constraint vertex
- const real_section_type::value_type* constraintOrient =
- &cellOrientation[iConstraint*orientationSize];
-
- // Entries associated with constraint forces applied at node i
- for (int iDim=0; iDim < spaceDim; ++iDim)
- for (int kDim=0; kDim < spaceDim; ++kDim)
- cellResidual[indexI*spaceDim+iDim] -=
- cellSoln[indexK*spaceDim+kDim] *
- -constraintOrient[kDim*spaceDim+iDim] * pseudoStiffness;
-
- // Entries associated with constraint forces applied at node j
- for (int jDim=0; jDim < spaceDim; ++jDim)
- for (int kDim=0; kDim < spaceDim; ++kDim)
- cellResidual[indexJ*spaceDim+jDim] -=
- cellSoln[indexK*spaceDim+kDim] *
- constraintOrient[kDim*spaceDim+jDim] * pseudoStiffness;
+ if (_useSolnIncr) {
+ // Get orientation at constraint vertex
+ const real_section_type::value_type* constraintOrient =
+ &cellOrientation[iConstraint*orientationSize];
+
+ // Entries associated with constraint forces applied at node i
+ for (int iDim=0; iDim < spaceDim; ++iDim)
+ for (int kDim=0; kDim < spaceDim; ++kDim)
+ cellResidual[indexI*spaceDim+iDim] -=
+ cellSoln[indexK*spaceDim+kDim] *
+ -constraintOrient[kDim*spaceDim+iDim] * pseudoStiffness;
+
+ // Entries associated with constraint forces applied at node j
+ for (int jDim=0; jDim < spaceDim; ++jDim)
+ for (int kDim=0; kDim < spaceDim; ++kDim)
+ cellResidual[indexJ*spaceDim+jDim] -=
+ cellSoln[indexK*spaceDim+kDim] *
+ constraintOrient[kDim*spaceDim+jDim] * pseudoStiffness;
+ } // if
} // for
#if 0
Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -24,8 +24,8 @@
* one side of the fault, the corresponding entries on the other side
* of the fault, and then the corresponding constraint vertices.
*
- * [ K aC^T ] [ U ] = [ Fe ]
- * [ C 0 ] [ Fi ] = [ D ]
+ * [ K aC^T ] [ U ] = [ Fe ]
+ * [ C 0 ] [ Fi/a ] = [ D ]
*
* where K is the stiffness matrix, C is the matrix of Lagrange
* constraints, U is the displacement field, Fe is the vector of
Modified: short/3D/PyLith/trunk/pylith/problems/Explicit.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/Explicit.py 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/pylith/problems/Explicit.py 2007-11-13 00:56:30 UTC (rev 8284)
@@ -135,6 +135,14 @@
bindings.completeSection(self.mesh.cppHandle, residual)
self._info.log("Solving equations.")
self.solver.solve(self.fields.getReal("dispTpdt"), self.jacobian, residual)
+
+ # BEGIN TEMPORARY
+ #bindings.sectionView(residual, "RHS");
+ #bindings.sectionView(self.fields.getReal("dispTpdt"), "SOLUTION");
+ #import pylith.utils.petsc as petscbindings
+ #print "JACOBIAN"
+ #petscbindings.mat_view(self.jacobian)
+ # END TEMPORARY
return
Modified: short/3D/PyLith/trunk/tests/1d/line2/dislocation_dyn.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/dislocation_dyn.cfg 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/tests/1d/line2/dislocation_dyn.cfg 2007-11-13 00:56:30 UTC (rev 8284)
@@ -32,7 +32,7 @@
# ----------------------------------------------------------------------
[pylithapp.timedependent]
total_time = 0.0175*s
-default_dt = 0.000175*s
+default_dt = 0.0001*s
dimension = 1
formulation = pylith.problems.Explicit
bc = pylith.bc.BCSingle
@@ -50,16 +50,17 @@
db.iohandler.filename = matprops.spatialdb
quadrature = pylith.feassemble.quadrature.Quadrature1D
quadrature.cell.shape = line
+quadrature.cell.quad_order = 2
# ----------------------------------------------------------------------
# boundary conditions
# ----------------------------------------------------------------------
[pylithapp.timedependent.bc.bc]
-fixed_dof = [0]
-id = 10
-label = end points
-db.label = Dirichlet BC
-db.iohandler.filename = dislocation_disp.spatialdb
+#fixed_dof = [0]
+#id = 10
+#label = end points
+#db.label = Dirichlet BC
+#db.iohandler.filename = dislocation_disp.spatialdb
# ----------------------------------------------------------------------
# faults
@@ -84,9 +85,11 @@
# PETSc
# ----------------------------------------------------------------------
[pylithapp.petsc]
+ksp_type = gmres
pc_type = jacobi
ksp_rtol = 1.0e-8
-ksp_max_it = 500
+ksp_max_it = 50
+ksp_gmres_restart = 10
#ksp_type = preonly
#pc_jacobi_rowsum = 1
Modified: short/3D/PyLith/trunk/tests/1d/line2/dislocation_dyn_sliprate.spatialdb
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/dislocation_dyn_sliprate.spatialdb 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/tests/1d/line2/dislocation_dyn_sliprate.spatialdb 2007-11-13 00:56:30 UTC (rev 8284)
@@ -11,4 +11,4 @@
space-dim = 1
}
}
-0.0 1.0e+3
+0.0 5.0e+2
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -217,38 +217,77 @@
solution->updatePoint(*v_iter, &_data->fieldT[iVertex*spaceDim]);
} // for
- // Call integrateResidual()
const double t = 2.134;
- fault.integrateResidual(residual, t, &fields, mesh);
+ const double dt = 0.01;
+ fault.timeStep(dt);
+ { // Integrate residual with solution (as opposed to solution increment).
+ fault.useSolnIncr(false);
+ fault.integrateResidual(residual, t, &fields, mesh);
- //residual->view("RESIDUAL");
+ //residual->view("RESIDUAL");
- // Check values
- const double* valsE = _data->valsResidual;
- iVertex = 0;
- const int fiberDimE = spaceDim;
- const double tolerance = 1.0e-06;
- for (Mesh::label_sequence::iterator v_iter=vBegin;
- v_iter != vEnd;
- ++v_iter, ++iVertex) {
- const int fiberDim = residual->getFiberDimension(*v_iter);
- CPPUNIT_ASSERT_EQUAL(fiberDimE, fiberDim);
- const real_section_type::value_type* vals =
- residual->restrictPoint(*v_iter);
-
- const bool isConstraint =
- (fault._constraintVert.end() != fault._constraintVert.find(*v_iter));
- const double pseudoStiffness =
- (!isConstraint) ? _data->pseudoStiffness : 1.0;
- for (int i=0; i < fiberDimE; ++i) {
- const int index = iVertex*spaceDim+i;
- const double valE = valsE[index] * pseudoStiffness;
- if (valE > tolerance)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valE, tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, vals[i], tolerance);
+ // Check values
+ const double* valsE = _data->valsResidual;
+ iVertex = 0;
+ const int fiberDimE = spaceDim;
+ const double tolerance = 1.0e-06;
+ for (Mesh::label_sequence::iterator v_iter=vBegin;
+ v_iter != vEnd;
+ ++v_iter, ++iVertex) {
+ const int fiberDim = residual->getFiberDimension(*v_iter);
+ CPPUNIT_ASSERT_EQUAL(fiberDimE, fiberDim);
+ const real_section_type::value_type* vals =
+ residual->restrictPoint(*v_iter);
+
+ const bool isConstraint =
+ (fault._constraintVert.end() != fault._constraintVert.find(*v_iter));
+ const double pseudoStiffness =
+ (!isConstraint) ? _data->pseudoStiffness : 1.0;
+ for (int i=0; i < fiberDimE; ++i) {
+ const int index = iVertex*spaceDim+i;
+ const double valE = valsE[index] * pseudoStiffness;
+ if (valE > tolerance)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valE, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, vals[i], tolerance);
+ } // for
} // for
- } // for
+ } // Integrate residual with solution (as opposed to solution increment).
+
+ residual->zero();
+ { // Integrate residual with solution increment.
+ fault.useSolnIncr(true);
+ fault.integrateResidual(residual, t, &fields, mesh);
+
+ //residual->view("RESIDUAL");
+
+ // Check values
+ const double* valsE = _data->valsResidualIncr;
+ iVertex = 0;
+ const int fiberDimE = spaceDim;
+ const double tolerance = 1.0e-06;
+ for (Mesh::label_sequence::iterator v_iter=vBegin;
+ v_iter != vEnd;
+ ++v_iter, ++iVertex) {
+ const int fiberDim = residual->getFiberDimension(*v_iter);
+ CPPUNIT_ASSERT_EQUAL(fiberDimE, fiberDim);
+ const real_section_type::value_type* vals =
+ residual->restrictPoint(*v_iter);
+
+ const bool isConstraint =
+ (fault._constraintVert.end() != fault._constraintVert.find(*v_iter));
+ const double pseudoStiffness =
+ (!isConstraint) ? _data->pseudoStiffness : 1.0;
+ for (int i=0; i < fiberDimE; ++i) {
+ const int index = iVertex*spaceDim+i;
+ const double valE = valsE[index] * pseudoStiffness;
+ if (valE > tolerance)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valE, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, vals[i], tolerance);
+ } // for
+ } // for
+ } // Integrate residual with solution increment.
} // testIntegrateResidual
// ----------------------------------------------------------------------
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinData.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinData.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -36,6 +36,7 @@
constraintVertices(0),
constraintCells(0),
valsResidual(0),
+ valsResidualIncr(0),
valsJacobian(0),
pseudoStiffness(0),
numConstraintVert(0)
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinData.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinData.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -70,6 +70,10 @@
int* constraintVertices; ///< Expected points for constraint vertices
int* constraintCells; ///< Expected cells for constraint vertices
double* valsResidual; ///< Expected values from residual calculation.
+
+ /// Expected values from residual calculation using solution increment.
+ double* valsResidualIncr;
+
double* valsJacobian; ///< Expected values from Jacobian calculation.
double pseudoStiffness; ///< Fake stiffness for conditioning
int numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataHex8.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataHex8.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataHex8.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -149,6 +149,29 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 1.07974939836, -0.32861938211, 0.04694562602, // 15 (constraint)
+ 0.0, 0.0, 0.0,
+ 1.00381374723, -0.33460458241, 0.08365114560, // 17 (constraint)
+ 0.0, 0.0, 0.0,
+ 0.90493237602, -0.32577565537, 0.10859188512, // 19 (constraint)
+ 0.0, 0.0, 0.0,
+ 0.78469841324, -0.30180708202, 0.12072283281, // 21 (constraint)
+};
+
+const double pylith::faults::CohesiveKinDataHex8::_valsResidualIncr[] = {
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
-9.4,-5.4,-7.4, // 6
-9.6,-5.6,-7.6, // 7
-9.8,-5.8,-7.8, // 8
@@ -158,13 +181,13 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+9.4,+5.4,+7.4, // 14
- 1.07974939836, -0.32861938211, 0.04694562602, // 15 (constraint)
+ 0.01271057284, -0.00386843521, 0.00055263360, // 15 (constraint)
+9.6,+5.6,+7.6, // 16
- 1.00381374723, -0.33460458241, 0.08365114560, // 17 (constraint)
+ 0.01411467401, -0.00470489134, 0.00117622283, // 17 (constraint)
+9.8,+5.8,+7.8, // 18
- 0.90493237602, -0.32577565537, 0.10859188512, // 19 (constraint)
+ 0.01544188788, -0.00555907964, 0.00185302655, // 19 (constraint)
+9.0,+5.0,+7.0, // 20
- 0.78469841324, -0.30180708202, 0.12072283281, // 21 (constraint)
+ 0.01656103940, -0.00636963054, 0.00254785222, // 21 (constraint)
};
const double pylith::faults::CohesiveKinDataHex8::_valsJacobian[] = {
@@ -1395,6 +1418,7 @@
constraintVertices = const_cast<int*>(_constraintVertices);
constraintCells = const_cast<int*>(_constraintCells);
valsResidual = const_cast<double*>(_valsResidual);
+ valsResidualIncr = const_cast<double*>(_valsResidualIncr);
valsJacobian = const_cast<double*>(_valsJacobian);
pseudoStiffness = _pseudoStiffness;
numConstraintVert = _numConstraintVert;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataHex8.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataHex8.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataHex8.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -63,6 +63,7 @@
static const int _constraintVertices[]; ///< Expected points for constraint vertices
static const int _constraintCells[]; ///< Expected cells for constraint vertices
static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsResidualIncr[]; ///< Expected values from residual calculation using solution increment.
static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
static const double _pseudoStiffness; ///< Fake stiffness for conditioning
static const int _numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataLine2.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataLine2.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataLine2.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -92,11 +92,19 @@
7
};
-const double pylith::faults::CohesiveKinDataLine2::_valsResidual[] = {
+const double pylith::faults::CohesiveKinDataLine2::_valsResidualIncr[] = {
0.0,
7.5,
0.0,
-7.5,
+ 0.01257664078
+};
+
+const double pylith::faults::CohesiveKinDataLine2::_valsResidual[] = {
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
1.05168389458
};
@@ -132,6 +140,7 @@
orientation = const_cast<double*>(_orientation);
constraintVertices = const_cast<int*>(_constraintVertices);
constraintCells = const_cast<int*>(_constraintCells);
+ valsResidualIncr = const_cast<double*>(_valsResidualIncr);
valsResidual = const_cast<double*>(_valsResidual);
valsJacobian = const_cast<double*>(_valsJacobian);
pseudoStiffness = _pseudoStiffness;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataLine2.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataLine2.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataLine2.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -63,6 +63,7 @@
static const int _constraintVertices[]; ///< Expected points for constraint vertices
static const int _constraintCells[]; ///< Expected cells for constraint vertices
static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsResidualIncr[]; ///< Expected values from residual calculation with solution increment.
static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
static const double _pseudoStiffness; ///< Fake stiffness for conditioning
static const int _numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -124,14 +124,27 @@
const double pylith::faults::CohesiveKinDataQuad4::_valsResidual[] = {
0.0, 0.0,
0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.989535448086, 0.0824612873405, // 9
+ 0.0, 0.0,
+ 1.05057813143, 0.0456773100622, // 11
+};
+
+const double pylith::faults::CohesiveKinDataQuad4::_valsResidualIncr[] = {
+ 0.0, 0.0,
+ 0.0, 0.0,
9.8, 8.8, // 4
9.0, 8.0, // 5
0.0, 0.0,
0.0, 0.0,
-9.8, -8.8, // 8
- 0.989535448086, 0.0824612873405, // 9
+ 0.01401378019, 0.00116781502, // 9
-9.0, -8.0, // 10
- 1.05057813143, 0.0456773100622, // 11
+ 0.01257113624, 0.00054657114, // 11
};
const double pylith::faults::CohesiveKinDataQuad4::_valsJacobian[] = {
@@ -362,6 +375,7 @@
constraintVertices = const_cast<int*>(_constraintVertices);
constraintCells = const_cast<int*>(_constraintCells);
valsResidual = const_cast<double*>(_valsResidual);
+ valsResidualIncr = const_cast<double*>(_valsResidualIncr);
valsJacobian = const_cast<double*>(_valsJacobian);
pseudoStiffness = _pseudoStiffness;
numConstraintVert = _numConstraintVert;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -63,6 +63,7 @@
static const int _constraintVertices[]; ///< Expected points for constraint vertices
static const int _constraintCells[]; ///< Expected cells for constraint vertices
static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsResidualIncr[]; ///< Expected values from residual calculation using solution increment.
static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
static const double _pseudoStiffness; ///< Fake stiffness for conditioning
static const int _numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4e.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4e.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4e.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -149,6 +149,24 @@
const double pylith::faults::CohesiveKinDataQuad4e::_valsResidual[] = {
0.0, 0.0,
0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.989535448086, 0.0824612873405, // 14
+ 0.0, 0.0,
+ 1.05057813143, 0.0456773100622, // 16
+ 0.0, 0.0,
+ 0.90435792846, 0.10852295130, // 18
+};
+
+const double pylith::faults::CohesiveKinDataQuad4e::_valsResidualIncr[] = {
+ 0.0, 0.0,
+ 0.0, 0.0,
-6.1, -4.1, // 6
-6.3, -4.3, // 7
0.0, 0.0,
@@ -157,11 +175,11 @@
-6.5, -4.5, // 11
0.0, 0.0,
+6.1, +4.1, // 13
- 0.989535448086, 0.0824612873405, // 14
+ 0.01401378019, 0.00116781502, // 14
+6.3, +4.3, // 15
- 1.05057813143, 0.0456773100622, // 16
+ 0.01257113624, 0.00054657114, // 16
+6.5, +4.5, // 17
- 0.90435792846, 0.10852295130, // 18
+ 0.01543608228, 0.00185232987, // 18
};
const double pylith::faults::CohesiveKinDataQuad4e::_valsJacobian[] = {
@@ -642,6 +660,7 @@
constraintVertices = const_cast<int*>(_constraintVertices);
constraintCells = const_cast<int*>(_constraintCells);
valsResidual = const_cast<double*>(_valsResidual);
+ valsResidualIncr = const_cast<double*>(_valsResidualIncr);
valsJacobian = const_cast<double*>(_valsJacobian);
pseudoStiffness = _pseudoStiffness;
numConstraintVert = _numConstraintVert;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4e.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4e.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataQuad4e.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -63,6 +63,7 @@
static const int _constraintVertices[]; ///< Expected points for constraint vertices
static const int _constraintCells[]; ///< Expected cells for constraint vertices
static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsResidualIncr[]; ///< Expected values from residual calculation using solution increment.
static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
static const double _pseudoStiffness; ///< Fake stiffness for conditioning
static const int _numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -112,16 +112,30 @@
const double pylith::faults::CohesiveKinDataTet4::_valsResidual[] = {
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 1.07974939836, -0.32861938211, 0.04694562602, // 8
+ 0.0, 0.0, 0.0,
+ 1.00381374723, -0.33460458241, 0.08365114560, // 10
+ 0.0, 0.0, 0.0,
+ 0.90493237602, -0.32577565537, 0.10859188512, // 12
+};
+
+const double pylith::faults::CohesiveKinDataTet4::_valsResidualIncr[] = {
+ 0.0, 0.0, 0.0,
9.7, 7.7, 8.7, // 3
9.9, 7.9, 8.9, // 4
9.1, 7.1, 8.1, // 5
0.0, 0.0, 0.0,
-9.7, -7.7, -8.7, // 7
- 1.07974939836, -0.32861938211, 0.04694562602, // 8
+ 0.01271057284, -0.00386843521, 0.00055263360, // 8
-9.9, -7.9, -8.9, // 4
- 1.00381374723, -0.33460458241, 0.08365114560, // 10
+ 0.01411467401, -0.00470489134, 0.00117622283, // 10
-9.1, -7.1, -8.1, // 5
- 0.90493237602, -0.32577565537, 0.10859188512, // 12
+ 0.01544188788, -0.00555907964, 0.00185302655, // 12
};
const double pylith::faults::CohesiveKinDataTet4::_valsJacobian[] = {
@@ -515,6 +529,7 @@
constraintVertices = const_cast<int*>(_constraintVertices);
constraintCells = const_cast<int*>(_constraintCells);
valsResidual = const_cast<double*>(_valsResidual);
+ valsResidualIncr = const_cast<double*>(_valsResidualIncr);
valsJacobian = const_cast<double*>(_valsJacobian);
pseudoStiffness = _pseudoStiffness;
numConstraintVert = _numConstraintVert;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -63,6 +63,7 @@
static const int _constraintVertices[]; ///< Expected points for constraint vertices
static const int _constraintCells[]; ///< Expected cells for constraint vertices
static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsResidualIncr[]; ///< Expected values from residual calculation using solution increment.
static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
static const double _pseudoStiffness; ///< Fake stiffness for conditioning
static const int _numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -116,19 +116,36 @@
const double pylith::faults::CohesiveKinDataTet4e::_valsResidual[] = {
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 1.07974939836, -0.32861938211, 0.04694562602, // 11
+ 0.0, 0.0, 0.0,
+ 1.00381374723, -0.33460458241, 0.08365114560, // 13
+ 0.0, 0.0, 0.0,
+ 0.90493237602, -0.32577565537, 0.10859188512, // 15
+ 0.0, 0.0, 0.0,
+ 0.78469841324, -0.30180708202, 0.12072283281, // 17
+};
+
+const double pylith::faults::CohesiveKinDataTet4e::_valsResidualIncr[] = {
+ 0.0, 0.0, 0.0,
7.8, 3.8, 5.8, // 5
7.0, 3.0, 5.0, // 6
8.2, 4.2, 6.2, // 7
8.4, 4.4, 6.4, // 8
0.0, 0.0, 0.0,
-7.8, -3.8, -5.8, // 10
- 1.07974939836, -0.32861938211, 0.04694562602, // 11
+ 0.01271057284, -0.00386843521, 0.00055263360, // 11
-7.0, -3.0, -5.0, // 12
- 1.00381374723, -0.33460458241, 0.08365114560, // 13
+ 0.01411467401, -0.00470489134, 0.00117622283, // 13
-8.2, -4.2, -6.2, // 14
- 0.90493237602, -0.32577565537, 0.10859188512, // 15
+ 0.01544188788, -0.00555907964, 0.00185302655, // 15
-8.4, -4.4, -6.4, // 16
- 0.78469841324, -0.30180708202, 0.12072283281, // 17
+ 0.01656103940, -0.00636963054, 0.00254785222, // 17
};
const double pylith::faults::CohesiveKinDataTet4e::_valsJacobian[] = {
@@ -747,6 +764,7 @@
constraintVertices = const_cast<int*>(_constraintVertices);
constraintCells = const_cast<int*>(_constraintCells);
valsResidual = const_cast<double*>(_valsResidual);
+ valsResidualIncr = const_cast<double*>(_valsResidualIncr);
valsJacobian = const_cast<double*>(_valsJacobian);
pseudoStiffness = _pseudoStiffness;
numConstraintVert = _numConstraintVert;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -63,6 +63,7 @@
static const int _constraintVertices[]; ///< Expected points for constraint vertices
static const int _constraintCells[]; ///< Expected cells for constraint vertices
static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsResidualIncr[]; ///< Expected values from residual calculation using solution increment.
static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
static const double _pseudoStiffness; ///< Fake stiffness for conditioning
static const int _numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -112,16 +112,30 @@
const double pylith::faults::CohesiveKinDataTet4f::_valsResidual[] = {
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 1.07974939836, -0.32861938211, 0.04694562602, // 8
+ 0.0, 0.0, 0.0,
+ 1.00381374723, -0.33460458241, 0.08365114560, // 10
+ 0.0, 0.0, 0.0,
+ 0.90493237602, -0.32577565537, 0.10859188512, // 12
+};
+
+const double pylith::faults::CohesiveKinDataTet4f::_valsResidualIncr[] = {
+ 0.0, 0.0, 0.0,
-9.7, -7.7, -8.7, // 3
-9.9, -7.9, -8.9, // 4
-9.1, -7.1, -8.1, // 5
0.0, 0.0, 0.0,
+9.7, +7.7, +8.7, // 7
- 1.07974939836, -0.32861938211, 0.04694562602, // 8
+ 0.01271057284, -0.00386843521, 0.00055263360, // 8
+9.9, +7.9, +8.9, // 4
- 1.00381374723, -0.33460458241, 0.08365114560, // 10
+ 0.01411467401, -0.00470489134, 0.00117622283, // 10
+9.1, +7.1, +8.1, // 5
- 0.90493237602, -0.32577565537, 0.10859188512, // 12
+ 0.01544188788, -0.00555907964, 0.00185302655, // 12
};
const double pylith::faults::CohesiveKinDataTet4f::_valsJacobian[] = {
@@ -515,6 +529,7 @@
constraintVertices = const_cast<int*>(_constraintVertices);
constraintCells = const_cast<int*>(_constraintCells);
valsResidual = const_cast<double*>(_valsResidual);
+ valsResidualIncr = const_cast<double*>(_valsResidualIncr);
valsJacobian = const_cast<double*>(_valsJacobian);
pseudoStiffness = _pseudoStiffness;
numConstraintVert = _numConstraintVert;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -63,6 +63,7 @@
static const int _constraintVertices[]; ///< Expected points for constraint vertices
static const int _constraintCells[]; ///< Expected cells for constraint vertices
static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsResidualIncr[]; ///< Expected values from residual calculation using solution increment.
static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
static const double _pseudoStiffness; ///< Fake stiffness for conditioning
static const int _numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -123,13 +123,24 @@
const double pylith::faults::CohesiveKinDataTri3::_valsResidual[] = {
0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 1.05057813143, 0.0456773100622, // 7
+ 0.0, 0.0,
+ 0.989535448086, 0.0824612873405, // 9
+};
+
+const double pylith::faults::CohesiveKinDataTri3::_valsResidualIncr[] = {
+ 0.0, 0.0,
-9.6, -8.6, // 3
-9.8, -8.8, // 4
0.0, 0.0,
+9.6, +8.6, // 6
- 1.05057813143, 0.0456773100622, // 7
+ 0.01257113624, 0.00054657114, // 7
+9.8, +8.8, // 8
- 0.989535448086, 0.0824612873405, // 9
+ 0.01401378019, 0.00116781502, // 9
};
const double pylith::faults::CohesiveKinDataTri3::_valsJacobian[] = {
@@ -288,6 +299,7 @@
constraintVertices = const_cast<int*>(_constraintVertices);
constraintCells = const_cast<int*>(_constraintCells);
valsResidual = const_cast<double*>(_valsResidual);
+ valsResidualIncr = const_cast<double*>(_valsResidualIncr);
valsJacobian = const_cast<double*>(_valsJacobian);
pseudoStiffness = _pseudoStiffness;
numConstraintVert = _numConstraintVert;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -63,6 +63,7 @@
static const int _constraintVertices[]; ///< Expected points for constraint vertices
static const int _constraintCells[]; ///< Expected cells for constraint vertices
static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsResidualIncr[]; ///< Expected values from residual calculation using solution increment.
static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
static const double _pseudoStiffness; ///< Fake stiffness for conditioning
static const int _numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3d.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3d.cc 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3d.cc 2007-11-13 00:56:30 UTC (rev 8284)
@@ -144,17 +144,32 @@
const double pylith::faults::CohesiveKinDataTri3d::_valsResidual[] = {
0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 0.0, 0.0,
+ 1.05057813143, 0.0456773100622, // 11
+ 0.0, 0.0,
+ 0.989535448086, 0.0824612873405, // 13
+ 0.0, 0.0,
+ 0.90435792846, 0.10852295130, // 15
+};
+
+const double pylith::faults::CohesiveKinDataTri3d::_valsResidualIncr[] = {
+ 0.0, 0.0,
-1.4142135623730949, -11.030865786510143, // 5
-8.0, -6.0, // 6
0.0, 0.0,
+7.2, -9.2, // 8
0.0, 0.0,
+1.4142135623730949, +11.030865786510143, // 10
- 1.05057813143, 0.0456773100622, // 11
+ 0.01257113624, 0.00054657114, // 11
+8.0, +6.0, // 12
- 0.989535448086, 0.0824612873405, // 13
+ 0.01401378019, 0.00116781502, // 13
-7.2, +9.2, // 14
- 0.90435792846, 0.10852295130, // 15
+ 0.01543608228, 0.00185232987, // 15
};
const double pylith::faults::CohesiveKinDataTri3d::_valsJacobian[] = {
@@ -473,6 +488,7 @@
constraintVertices = const_cast<int*>(_constraintVertices);
constraintCells = const_cast<int*>(_constraintCells);
valsResidual = const_cast<double*>(_valsResidual);
+ valsResidualIncr = const_cast<double*>(_valsResidualIncr);
valsJacobian = const_cast<double*>(_valsJacobian);
pseudoStiffness = _pseudoStiffness;
numConstraintVert = _numConstraintVert;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3d.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3d.hh 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTri3d.hh 2007-11-13 00:56:30 UTC (rev 8284)
@@ -63,6 +63,7 @@
static const int _constraintVertices[]; ///< Expected points for constraint vertices
static const int _constraintCells[]; ///< Expected cells for constraint vertices
static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsResidualIncr[]; ///< Expected values from residual calculation using solution increment.
static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
static const double _pseudoStiffness; ///< Fake stiffness for conditioning
static const int _numConstraintVert; ///< Number of constraint vertices
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/slipth.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/slipth.py 2007-11-12 23:03:09 UTC (rev 8283)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/slipth.py 2007-11-13 00:56:30 UTC (rev 8284)
@@ -1,15 +1,20 @@
from math import *
-finalSlip = (2.5, 0.0, 0.3)
+finalSlip = (2.6, -1.0, 0.4)
slipMag = (finalSlip[0]**2+finalSlip[1]**2+finalSlip[2]**2)**0.5
-peakRate = 1.6
-slipTime = 1.4
+peakRate = 1.8
+slipTime = 1.5
t = 2.134
+dt = 0.01
tau = slipMag / (exp(1.0) * peakRate)
t0 = slipTime
slipN = 1.0 - exp(-(t-t0)/tau) * (1.0 + (t-t0)/tau)
+slipNp = 1.0 - exp(-(t-dt-t0)/tau) * (1.0 + (t-dt-t0)/tau)
+slipNincr = slipN - slipNp
+print "%13.11f, %13.11f, %13.11f" % \
+ (slipN*finalSlip[0], slipN*finalSlip[1], slipN*finalSlip[2])
print "%13.11f, %13.11f, %13.11f" % \
- (slipN*finalSlip[0], slipN*finalSlip[1], slipN*finalSlip[2])
+ (slipNincr*finalSlip[0], slipNincr*finalSlip[1], slipNincr*finalSlip[2])
More information about the cig-commits
mailing list