[cig-commits] r15691 - in short/3D/PyLith/branches/pylith-friction: libsrc/faults playpen/friction
brad at geodynamics.org
brad at geodynamics.org
Fri Sep 25 14:42:51 PDT 2009
Author: brad
Date: 2009-09-25 14:42:51 -0700 (Fri, 25 Sep 2009)
New Revision: 15691
Modified:
short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc
short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.hh
short/3D/PyLith/branches/pylith-friction/playpen/friction/spring_example.py
Log:
Start migration towards implementing friction as part of solver.
Modified: short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc 2009-09-24 04:17:39 UTC (rev 15690)
+++ short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc 2009-09-25 21:42:51 UTC (rev 15691)
@@ -132,9 +132,6 @@
// Compute tributary area for each vertex in fault mesh.
_calcArea();
- // Initialize quadrature geometry.
- _quadrature->initializeGeometry();
-
// Get initial tractions using a spatial database.
_getInitialTractions();
@@ -422,7 +419,6 @@
// * DOF k: slip values {D(t+dt)}
topology::Field<topology::SubMesh>& slip = _fields->get("slip");
- slip.zero();
const int spaceDim = _quadrature->spaceDim();
@@ -618,15 +614,19 @@
assert(0 != fields);
assert(0 != _fields);
- // Update cumulative slip
- topology::Field<topology::SubMesh>& cumSlip = _fields->get("cumulative slip");
- topology::Field<topology::SubMesh>& slip = _fields->get("slip");
- if (!_useSolnIncr)
- cumSlip.zero();
- cumSlip += slip;
} // updateStateVars
// ----------------------------------------------------------------------
+// Constrain solution based on friction.
+void
+pylith::faults::FaultCohesiveDynL::constrainSolution(
+ const double t,
+ topology::SolutionFields* const fields)
+{ // constrainSolution
+ // :TODO: Friction stuff goes here
+} // constrainSolution
+
+// ----------------------------------------------------------------------
// Verify configuration is acceptable.
void
pylith::faults::FaultCohesiveDynL::verifyConfiguration(
Modified: short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.hh 2009-09-24 04:17:39 UTC (rev 15690)
+++ short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.hh 2009-09-25 21:42:51 UTC (rev 15691)
@@ -177,6 +177,14 @@
void updateStateVars(const double t,
topology::SolutionFields* const fields);
+ /** Constrain solution based on friction.
+ *
+ * @param t Current time
+ * @param fields Solution fields
+ */
+ void constrainSolution(const double t,
+ topology::SolutionFields* const fields);
+
/** Verify configuration is acceptable.
*
* @param mesh Finite-element mesh
Modified: short/3D/PyLith/branches/pylith-friction/playpen/friction/spring_example.py
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/spring_example.py 2009-09-24 04:17:39 UTC (rev 15690)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/spring_example.py 2009-09-25 21:42:51 UTC (rev 15691)
@@ -29,7 +29,7 @@
import numpy
# Spring stiffness [k0, k1, ..., kN]
-k = (1.0, 1.0, 1.0, 1.0, 1.0)
+k = (6.0, 2.0, 1.0, 1.0, 4.0)
# Prescribed displacement, u5
u5 = 2.5
@@ -75,8 +75,8 @@
#slipIncr = 2*(lm-fy)
slipIncr = (k[2] + k[3])*(lm-fy) - (k[2]*b[2] - k[3]*b[3])
b[5] += slipIncr # Update slip estimate
- incr[2] -= 0.5*slipIncr
- incr[3] += 0.5*slipIncr
+ #incr[2] -= 0.5*slipIncr
+ #incr[3] += 0.5*slipIncr
# ----------------------------------------------------------------------
More information about the CIG-COMMITS
mailing list