[cig-commits] r15188 - in short/3D/PyLith/trunk: . examples/3d/tet4 libsrc/bc libsrc/faults libsrc/feassemble libsrc/materials libsrc/meshio libsrc/topology tests
brad at geodynamics.org
brad at geodynamics.org
Wed Jun 10 15:57:14 PDT 2009
Author: brad
Date: 2009-06-10 15:57:12 -0700 (Wed, 10 Jun 2009)
New Revision: 15188
Added:
short/3D/PyLith/trunk/tests/README
Modified:
short/3D/PyLith/trunk/TODO
short/3D/PyLith/trunk/examples/3d/tet4/mat_elastic.spatialdb
short/3D/PyLith/trunk/examples/3d/tet4/mat_viscoelastic.spatialdb
short/3D/PyLith/trunk/libsrc/bc/Neumann.cc
short/3D/PyLith/trunk/libsrc/bc/Neumann_NEW.cc
short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
short/3D/PyLith/trunk/libsrc/faults/ConstRateSlipFn.cc
short/3D/PyLith/trunk/libsrc/faults/LiuCosSlipFn.cc
short/3D/PyLith/trunk/libsrc/faults/StepSlipFn.cc
short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.cc
short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc
short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc
short/3D/PyLith/trunk/libsrc/materials/Material.cc
short/3D/PyLith/trunk/libsrc/materials/Metadata.cc
short/3D/PyLith/trunk/libsrc/meshio/CellFilterAvg.cc
short/3D/PyLith/trunk/libsrc/meshio/VertexFilterVecNorm.cc
short/3D/PyLith/trunk/libsrc/topology/Field.cc
Log:
Better error trapping.
Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/TODO 2009-06-10 22:57:12 UTC (rev 15188)
@@ -2,6 +2,10 @@
CURRENT ISSUES/PRIORITIES
======================================================================
+----------------------------------------------------------------------
+RELEASE 1.4
+----------------------------------------------------------------------
+
Matt
Memory model
C++ Objects with fields
@@ -26,9 +30,7 @@
ArbitratySlipFn (final slip, start time)
full-scale testing
cleanup
- symmetric matrix (preconditioner? sub_pc_factor_shift_nonzero_positive_definite)
-
Charles
3-D Power-law rheology
libtests
@@ -38,37 +40,22 @@
Generalized Maxwell materials (initial stress/strain)
--1. Fix Tabrez's bug. [Matt]
+----------------------------------------------------------------------
-3. Full-scale tests (few 1-D, 2-D, and 3-D)
+1. Tidy up
- 1-D
- 1. axial disp [DONE]
- 2. dislocation [DONE]
+ Add simple stableTimeStep() for elastic materials.
- 2-D
- 1. axial/shear (DirichletBC)
- 2. axial/shear (DirichletBC, parallel)
- 3. axial traction (Neumann, DirichletBC)
- 4. single fault (static)
- 5. single fault (quasi-static w/multiple ruptures)
- 6. single fault (dynamic)
- 7. two fault (static)
- 8. two fault (static, parallel)
+ Switch Components to PetscComponents.
+ Add _cleanup() to components to deallocate local data structures.
+ Add cleanup() to non-components to deallocate local data structures.
- 3-D
- 1. axial/shear (DirichletBC)
- 2. axial/shear (DirichletBC, parallel)
- 3. single fault (static)
- 4. single fault (Savage/Prescott like)
- 5. single fault (dynamic)
- 6. two fault (static)
- 7. two fault (static, parallel)
- 8. gravity w/initial stress and strain
+ recursive output of parameters in playpen
- Gravity with faults, Neumann BC.
+ Add check before calling newSection() when want to enforce at
+ least 1 value.
-4. Add missing unit tests
+2. Add missing unit tests
libtests/topology/TestMesh::testNondimensionalize()
@@ -129,45 +116,8 @@
MemoryLogger.logMesh()
MemoryLogger.logMaterial()
-5. Tidy up
+3. Update manual for version 1.4 [Brad and Charles]
- Replace memcpy() calls with loops.
-
- How do we determine the orientation for a fault in a 1-D mesh? We
- assume normaldir is +1.0, but cohesive cells could be created so
- that the fault has a normaldir of -1.0. If the normaldir is -1.0,
- then we need to flip the orientation field to get the correct
- sense of slip.
-
- Add simple stableTimeStep() for elastic materials.
-
- Cleanup logging. Constraints and Integrators should log at the C++
- level using the C++ EventLogger. Add finer grain logging at C++
- level as in ElasticityImplicit.
-
- Update journaling.
-
- Add
- throw std::logic_error(message);
- after assert(0) to insure error is trapped.
-
- Eliminate use of Inventory class.
-
- Switch Components to PetscComponents.
- Add _cleanup() to components to deallocate local data structures.
- Add cleanup() to non-components to deallocate local data structures.
-
- Create createModuleObj() methods to Python objects as standard way
- of creating handle to C++ object (not necessary in abstract base
- classes).
-
- Add check before calling newSection() when want to enforce at
- least 1 value.
-
- Cleanup SlipTimeFn tests (refactor test/initialize stuff)
-
-13. Update manual for version 1.4 [Brad and Charles]
-
Figure 2.2: dependencies (Pyrex->SWIG)
3.3 and 3.4 update for solution increment implementation
@@ -195,6 +145,12 @@
Add Savage-Prescott
+ Extending PyLith
+
+ Constitutive models
+
+ Material properties
+
File Formats
Time History
@@ -208,39 +164,75 @@
* Material
* initial stress, strain, and state variables
--- Release (v1.4) --
+4. Check Tabrez's problems.
-11. Savage-Presscott benchmark
+
+----------------------------------------------------------------------
+POST RELEASE 1.4
+----------------------------------------------------------------------
+
+1. Savage-Presscott benchmark
Tet mesh
-12. Analytic BC for reverse-slip benchmark [Charles or Brad]
+2. Analytic BC for reverse-slip benchmark [Charles or Brad]
a. Create BC for CUBIT mesh.
b. Create BC for LaGriT mesh.
c. Run benchmarks.
d. Generate analytic solutions.
e. Tabulate results.
-2. Nondimensionalization
+3. Tidy up
+ Replace memcpy() calls with loops.
+
+ Cleanup logging. Constraints and Integrators should log at the C++
+ level using the C++ EventLogger. Add finer grain logging at C++
+ level as in ElasticityImplicit.
+
+ Update journaling.
+
+ Eliminate use of Inventory class.
+
+ Switch Components to PetscComponents.
+ Add _cleanup() to components to deallocate local data structures.
+ Add cleanup() to non-components to deallocate local data structures.
+
+ Create createModuleObj() methods to Python objects as standard way
+ of creating handle to C++ object (not necessary in abstract base
+ classes).
+
+ Create createModuleObj() methods to Python objects as standard way
+ of creating handle to C++ object (not necessary in abstract base
+ classes).
+
+ Add check before calling newSection() when want to enforce at
+ least 1 value.
+
+ Cleanup SlipTimeFn tests (refactor test/initialize stuff)
+
+
+----------------------------------------------------------------------
+RELEASE 1.5
+----------------------------------------------------------------------
+
+1. Nondimensionalization
+
Ask constraints if a block matrix is okay. If okay and matrix type
is "unknown" (not set by user), then set block size. Do this in Python.
-7. 2-D Plane strain Maxwell viscoelastic rheology [Charles]
+2. 2-D Plane strain Maxwell viscoelastic rheology [Charles]
-8. 2-D Plane strain Generalized Maxwell viscoelastic rheology [Charles]
+3. 2-D Plane strain Generalized Maxwell viscoelastic rheology [Charles]
-9. 2-D Power-law rheology [Charles]
+4. 2-D Power-law rheology [Charles]
2D viscoelastic models for plane strain
-10. Initial stress, strain, state variables for inelastic models [Charles]
+5. Initial stress, strain, state variables for inelastic models [Charles]
+6. Manual
- Manual
-
* Cleanup notation and discussion of inelastic materials
--- Release (v1.5) --
-
Modularize output? [Matt]
Fault friction
@@ -267,21 +259,28 @@
ifstream is insufficient. Need state of istringstream buffer, but it
is often !good() at eof(). Test of !good() and !eof()?
-* FixedDOFDB
+* ZeroDispDB
- The default BC is FixedDOF which hardwires the values in a UniformDB
+ The default BC is ZeroDispDB which hardwires the values in a UniformDB
to 0. No error message is generated if the user sets the values or
data properties and they are overwritten by the hardwired values. A
- possible solution is for FixedDOF to use a C++ UniformDB but not
+ possible solution is for ZeroDispDB to use a C++ UniformDB but not
inherit from the Python UniformDB.
+* Fault orientatin in 1-D mesh
+
+ How do we determine the orientation for a fault in a 1-D mesh? We
+ assume normaldir is +1.0, but cohesive cells could be created so
+ that the fault has a normaldir of -1.0. If the normaldir is -1.0,
+ then we need to flip the orientation field to get the correct
+ sense of slip.
+
+
+
======================================================================
MISC PRIORITIES (Brad)
======================================================================
-1. Want to take advantage of symmetry and block structure of Jacobian
- matrix when possible.
-
2. Additional unit tests
a. FaultCohesive
i. Add checking of faultMesh [not currently used]
@@ -305,13 +304,20 @@
Release 1.4
----------------------------------------------------------------------
- 1. Interface w/PETSc nonlinear solvers
+ 1. Nonlinear bulk rheologies
- 3. Nonlinear bulk rheologies
-
Power-law viscoelastic material
- 4. Fault constitutive models
+ 2. Time dependent BCs
+
+ 3. Improved PC for kinematic faults
+
+----------------------------------------------------------------------
+Release 1.5
+----------------------------------------------------------------------
+
+ 1. Fault constitutive models
+
Linear slip-weakening
Rate- and state-friction
Uniform friction
@@ -322,18 +328,6 @@
Fault constitutive values (time histories)
Orientation , Fault constitutive parameters (diagnostic)
- 5. Uniform global refinement
-
- 6. Improved PC for kinematic faults
-
- Improved support for spherical geometry in user-interface
-
-----------------------------------------------------------------------
-Release 1.5
-----------------------------------------------------------------------
-
- 1. Time dependent BCs
-
2. Large deformations
3. Finite strain
@@ -346,6 +340,10 @@
Update quadrature to use CellGeometry refPtsToGlobal() and
jacobian() Remove CellGeometry jacobian(double_array)
+ 5. Uniform global refinement
+
+ 6. Improved support for spherical geometry in user-interface
+
----------------------------------------------------------------------
Release 1.6
----------------------------------------------------------------------
Modified: short/3D/PyLith/trunk/examples/3d/tet4/mat_elastic.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/tet4/mat_elastic.spatialdb 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/examples/3d/tet4/mat_elastic.spatialdb 2009-06-10 22:57:12 UTC (rev 15188)
@@ -7,7 +7,7 @@
SimpleDB {
num-values = 3 // number of material property values
value-names = density vs vp // names of the material property values
- value-units = kg/m**3 m/s m/s // units (conversions not supported)
+ value-units = kg/m**3 m/s m/s
num-locs = 1 // number of locations
data-dim = 0
space-dim = 3
Modified: short/3D/PyLith/trunk/examples/3d/tet4/mat_viscoelastic.spatialdb
===================================================================
--- short/3D/PyLith/trunk/examples/3d/tet4/mat_viscoelastic.spatialdb 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/examples/3d/tet4/mat_viscoelastic.spatialdb 2009-06-10 22:57:12 UTC (rev 15188)
@@ -10,7 +10,7 @@
SimpleDB {
num-values = 4 // number of material property values
value-names = density vs vp viscosity // names of the material property values
- value-units = kg/m**3 m/s m/s Pa*s // units (conversions not supported)
+ value-units = kg/m**3 m/s m/s Pa*s
num-locs = 1 // number of locations
data-dim = 0
space-dim = 3
@@ -23,8 +23,8 @@
// (1) x coordinate (m)
// (2) y coordinate (m)
// (3) z coordinate (m)
-// (4) density (kg/m^3)
+// (4) density (kg/m**3)
// (5) vs (m/s)
// (6) vp (m/s)
-// (7) viscosity (Pa-s)
+// (7) viscosity (Pa*s)
0.0 0.0 0.0 2500.0 3000.0 5291.502622129181 7.10046e+19
Modified: short/3D/PyLith/trunk/libsrc/bc/Neumann.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/Neumann.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/bc/Neumann.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -132,7 +132,9 @@
break;
} // case 3
default :
+ std::cerr << "Bad spatial dimension '" << spaceDim << "'." << std::endl;
assert(0);
+ throw std::logic_error("Bad spatial dimension in Neumann.");
} // switch
// Containers for database query results and quadrature coordinates in
Modified: short/3D/PyLith/trunk/libsrc/bc/Neumann_NEW.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/Neumann_NEW.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/bc/Neumann_NEW.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -112,7 +112,9 @@
break;
} // case 3
default :
+ std::cerr << "Bad spatial dimension '" << spaceDim << "'." << std::endl;
assert(0);
+ throw std::logic_error("Bad spatial dimension in Neumann.");
} // switch
// Containers for database query results and quadrature coordinates in
Modified: short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -132,7 +132,9 @@
break;
} // case 3
default :
+ std::cerr << "Bad spatial dimension '" << spaceDim << "'." << std::endl;
assert(0);
+ throw std::logic_error("Bad spatial dimension in BruneSlipFn.");
} // switch
_dbSlipTime->open();
Modified: short/3D/PyLith/trunk/libsrc/faults/ConstRateSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/ConstRateSlipFn.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/faults/ConstRateSlipFn.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -121,7 +121,9 @@
break;
} // case 3
default :
+ std::cerr << "Bad spatial dimension '" << spaceDim << "'." << std::endl;
assert(0);
+ throw std::logic_error("Bad spatial dimension in ConstRateSlipFn.");
} // switch
_dbSlipTime->open();
Modified: short/3D/PyLith/trunk/libsrc/faults/LiuCosSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/LiuCosSlipFn.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/faults/LiuCosSlipFn.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -132,7 +132,9 @@
break;
} // case 3
default :
+ std::cerr << "Bad spatial dimension '" << spaceDim << "'." << std::endl;
assert(0);
+ throw std::logic_error("Bad spatial dimension in LiuCosSlipFn.");
} // switch
_dbSlipTime->open();
Modified: short/3D/PyLith/trunk/libsrc/faults/StepSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/StepSlipFn.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/faults/StepSlipFn.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -119,7 +119,9 @@
break;
} // case 3
default :
+ std::cerr << "Bad spatial dimension '" << spaceDim << "'." << std::endl;
assert(0);
+ throw std::logic_error("Bad spatial dimension in StepSlipFn.");
} // switch
_dbSlipTime->open();
Modified: short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -19,6 +19,7 @@
#include <cstring> // USES memcpy()
#include <iostream> // USES std::cerr
+#include <stdexcept> // USES std::logic_error
// ----------------------------------------------------------------------
// Default constructor.
@@ -48,6 +49,7 @@
<< "Could not find orientation function for cell with shape "
<< shape << ".";
assert(0);
+ throw std::logic_error("Bad shape in CellGeometry.");
} // switch
} // constructor
@@ -92,6 +94,7 @@
std::cerr
<< "Could not find dimension of cell with shape " << _shape << ".";
assert(0);
+ throw std::logic_error("Bad shape in CellGeometry.");
} // switch
return dim;
} // cellDim
@@ -127,6 +130,7 @@
<< "Could not find number of corners for cell with shape "
<< _shape << ".";
assert(0);
+ throw std::logic_error("Bad shape in CellGeometry.");
} // switch
return corners;
} // numCorners
Modified: short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -148,7 +148,9 @@
const char* queryNames[] = { "x", "y", "z"};
_gravityField->queryVals(queryNames, spaceDim);
} else {
+ std::cerr << "Bad spatial dimension '" << spaceDim << "'." << std::endl;
assert(0);
+ throw std::logic_error("Bad spatial dimension in IntegratorElasticity.");
} // else
} // if
} // initialize
@@ -184,8 +186,11 @@
} else if (3 == cellDim) {
calcTotalStrainFn =
&pylith::feassemble::IntegratorElasticity::_calcTotalStrain3D;
- } else
- assert(0);
+ } else {
+ std::cerr << "Bad cell dimension '" << cellDim << "'." << std::endl;
+ assert(0);
+ throw std::logic_error("Bad cell dimension in IntegratorElasticity.");
+ } // else
// Allocate arrays for cell data.
double_array dispCell(numBasis*spaceDim);
@@ -439,8 +444,11 @@
} else if (3 == cellDim) {
calcTotalStrainFn =
&pylith::feassemble::IntegratorElasticity::_calcTotalStrain3D;
- } else
- assert(0);
+ } else {
+ std::cerr << "Bad cell dimension '" << cellDim << "'." << std::endl;
+ assert(0);
+ throw std::logic_error("Bad cell dimension in IntegratorElasticity.");
+ } // else
// Allocate arrays for cell data.
double_array dispCell(numBasis*spaceDim);
Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -428,7 +428,9 @@
break;
} // case 3
default :
+ std::cerr << "Bad dimension '" << dimension() << "'." << std::endl;
assert(0);
+ throw std::logic_error("Unknown dimension in elastic material.");
} // switch
assert(0 != _normalizer);
@@ -570,7 +572,9 @@
break;
} // case 3
default :
+ std::cerr << "Bad dimension '" << dimension() << "'." << std::endl;
assert(0);
+ throw std::logic_error("Unknown dimension in elastic material.");
} // switch
assert(0 != _normalizer);
Modified: short/3D/PyLith/trunk/libsrc/materials/Material.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/Material.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/materials/Material.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -478,7 +478,7 @@
case topology::FieldBase::MULTI_TENSOR:
case topology::FieldBase::MULTI_OTHER:
default :
- std::cerr << "Bad vector field type for Material." << std::endl;
+ std::cerr << "Bad vector field type '" << fieldType << "'." << std::endl;
assert(0);
throw std::logic_error("Bad vector field type for Material.");
} // switch
Modified: short/3D/PyLith/trunk/libsrc/materials/Metadata.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/Metadata.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/materials/Metadata.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -14,9 +14,10 @@
#include "Metadata.hh" // implementation of class methods
+#include <cassert> // USES assert()
#include <sstream> // USES std::ostringstream
#include <stdexcept> // USES std::runtime_error
-#include <cassert> // USES assert()
+#include <iostream> // USES std::cerr
// ----------------------------------------------------------------------
// Constructor.
@@ -112,7 +113,9 @@
} // STATEVAR
default :
+ std::cerr << "Bad value type '" << valueType << "'." << std::endl;
assert(0);
+ throw std::logic_error("Unknown valueType in Metadata.");
} // switch
return fiberDim;
@@ -154,7 +157,9 @@
} // STATEVAR
default :
+ std::cerr << "Bad value type '" << valueType << "'." << std::endl;
assert(0);
+ throw std::logic_error("Unknown valueType in Metadata.");
} // switch
return fieldType;
Modified: short/3D/PyLith/trunk/libsrc/meshio/CellFilterAvg.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/meshio/CellFilterAvg.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/meshio/CellFilterAvg.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -124,7 +124,8 @@
case topology::FieldBase::TENSOR:
case topology::FieldBase::OTHER:
default :
- std::cerr << "Bad vector field type for CellFilterAvg." << std::endl;
+ std::cerr << "Bad vector field type '" << fieldIn.vectorFieldType()
+ << "'." << std::endl;
assert(0);
throw std::logic_error("Bad vector field type for CellFilterAvg.");
} // switch
Modified: short/3D/PyLith/trunk/libsrc/meshio/VertexFilterVecNorm.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/meshio/VertexFilterVecNorm.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/meshio/VertexFilterVecNorm.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -96,8 +96,10 @@
case topology::FieldBase::TENSOR:
case topology::FieldBase::OTHER:
default :
- std::cerr << "Bad vector field type for VertexFilterVecNorm." << std::endl;
+ std::cerr << "Bad vector field type '" << fieldIn.vectorFieldType()
+ << "'." << std::endl;
assert(0);
+ throw std::logic_error("Bad vector field type in VertexFilterVecNorm.");
} // switch
} // if
logger.stagePop();
Modified: short/3D/PyLith/trunk/libsrc/topology/Field.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/Field.cc 2009-06-10 22:56:37 UTC (rev 15187)
+++ short/3D/PyLith/trunk/libsrc/topology/Field.cc 2009-06-10 22:57:12 UTC (rev 15188)
@@ -195,6 +195,7 @@
else {
std::cerr << "Unknown value for DomainEnum: " << domain << std::endl;
assert(0);
+ throw std::logic_error("Bad domain enum in Field.");
} // else
newSection(points, fiberDim);
@@ -557,6 +558,7 @@
std::cerr << "Unknown vector field value '" << _vecFieldType
<< "'." << std::endl;
assert(0);
+ throw std::logic_error("Bad vector field type in Field.");
} // switch
std::cout << "Viewing field '" << _label << "' "<< label << ".\n"
Added: short/3D/PyLith/trunk/tests/README
===================================================================
--- short/3D/PyLith/trunk/tests/README (rev 0)
+++ short/3D/PyLith/trunk/tests/README 2009-06-10 22:57:12 UTC (rev 15188)
@@ -0,0 +1,69 @@
+Full-scale tests of PyLith.
+
+
+PyLith features:
+
+ Problem dimension: 1-D, 2-D, 3-D
+ Boundary conditions
+ Dirichlet
+ Point force
+ Neumann
+ Absorbing dampers
+ Faults
+
+
+
+----------------------------------------------------------------------
+1-D tests
+----------------------------------------------------------------------
+
+line2 (linear cells)
+
+ * axialextension
+
+ - Dirichlet w/initial displacement
+
+ * dislocation
+
+ - Dirichlet w/initial displacement
+ - Fault slip (1 fault, 1 event)
+
+line3 (quadratic cells)
+
+ * axialextension
+
+ - Dirichlet w/initial displacement
+
+ * dislocation
+
+ - Dirichlet w/initial displacement
+ - Fault slip (1 fault, 1 event)
+
+----------------------------------------------------------------------
+2-D tests
+----------------------------------------------------------------------
+
+1. axial/shear (DirichletBC)
+2. axial/shear (DirichletBC, parallel)
+3. axial traction (Neumann, DirichletBC)
+4. single fault (static)
+5. single fault (quasi-static w/multiple ruptures)
+6. single fault (dynamic)
+7. two fault (static)
+8. two fault (static, parallel)
+
+----------------------------------------------------------------------
+3-D tests
+----------------------------------------------------------------------
+
+1. axial/shear (DirichletBC)
+2. axial/shear (DirichletBC, parallel)
+3. single fault (static)
+4. single fault (Savage/Prescott like)
+5. single fault (dynamic)
+6. two fault (static)
+7. two fault (static, parallel)
+8. gravity w/initial stress and strain
+
+Gravity with faults, Neumann BC.
+
More information about the CIG-COMMITS
mailing list