[cig-commits] r7014 - in short/3D/PyLith/trunk: examples/twotri3
modulesrc/solver pylith/feassemble pylith/solver
knepley at geodynamics.org
knepley at geodynamics.org
Thu May 31 10:32:09 PDT 2007
Author: knepley
Date: 2007-05-31 10:32:08 -0700 (Thu, 31 May 2007)
New Revision: 7014
Modified:
short/3D/PyLith/trunk/examples/twotri3/pylithapp.cfg
short/3D/PyLith/trunk/modulesrc/solver/solver.pyxe.src
short/3D/PyLith/trunk/pylith/feassemble/FIATCell.py
short/3D/PyLith/trunk/pylith/solver/SolverLinear.py
Log:
Now twotri3 is working again (tensor elements incomplete)
Modified: short/3D/PyLith/trunk/examples/twotri3/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twotri3/pylithapp.cfg 2007-05-31 16:48:04 UTC (rev 7013)
+++ short/3D/PyLith/trunk/examples/twotri3/pylithapp.cfg 2007-05-31 17:32:08 UTC (rev 7014)
@@ -7,6 +7,7 @@
[pylithapp.journal.info]
eqdeformation = 1
explicit = 1
+implicit = 1
petsc = 1
meshioascii = 1
homogeneous = 1
@@ -28,7 +29,7 @@
# problem
# ----------------------------------------------------------------------
[pylithapp.timedependent]
-total_time = 1.0*s
+total_time = 2.0*s
default_dt = 1.0*s
dimension = 2
Modified: short/3D/PyLith/trunk/modulesrc/solver/solver.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/modulesrc/solver/solver.pyxe.src 2007-05-31 16:48:04 UTC (rev 7013)
+++ short/3D/PyLith/trunk/modulesrc/solver/solver.pyxe.src 2007-05-31 17:32:08 UTC (rev 7014)
@@ -90,7 +90,7 @@
PetscError(__LINE__,__FUNCT__,__FILE__,__SDIR__,err,0," ");
throw std::runtime_error("Could not create KSP object.");
} // if
- //err = KSPSetFromOptions(*ksp);
+ err = KSPSetFromOptions(*ksp);
if (err) {
PetscError(__LINE__,__FUNCT__,__FILE__,__SDIR__,err,0," ");
throw std::runtime_error("Could not set KSP options.");
Modified: short/3D/PyLith/trunk/pylith/feassemble/FIATCell.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/FIATCell.py 2007-05-31 16:48:04 UTC (rev 7013)
+++ short/3D/PyLith/trunk/pylith/feassemble/FIATCell.py 2007-05-31 17:32:08 UTC (rev 7014)
@@ -80,6 +80,46 @@
return
+ def initializeTensor(self, dim):
+ """
+ Initialize reference finite-element cell from a tensor product of 1D Lagrange elements.
+ """
+ quadrature = self._setupQuadrature()
+ basisFns = self._setupBasisFns()
+
+ # Evaluate basis functions at quadrature points
+ quadpts = quadrature.get_points()
+ basis = numpy.array(basisFns.tabulate(quadpts)).transpose()
+ self.basis = numpy.reshape(basis.flatten(), basis.shape)
+
+ # Evaluate derivatives of basis functions at quadrature points
+ import FIAT.shapes
+ dim = FIAT.shapes.dimension(basisFns.base.shape)
+ basisDeriv = numpy.array([basisFns.deriv_all(d).tabulate(quadpts) \
+ for d in range(dim)]).transpose()
+ self.basisDeriv = numpy.reshape(basisDeriv.flatten(), basisDeriv.shape)
+
+ self.quadPts = numpy.array(quadrature.get_points())
+ self.quadWts = numpy.array(quadrature.get_weights())
+
+ self.cellDim = dim
+ self.numCorners = len(basisFns)
+ self.numQuadPts = len(quadrature.get_weights())
+
+ self._info.line("Basis (quad pts):")
+ self._info.line(self.basis)
+ self._info.line("Basis derivatives (quad pts):")
+ self._info.line(self.basisDeriv)
+ self._info.line("Quad pts:")
+ self._info.line(quadrature.get_points())
+ self._info.line("Quad wts:")
+ self._info.line(quadrature.get_weights())
+
+ self._info.log()
+
+ return
+
+
# PRIVATE METHODS ////////////////////////////////////////////////////
def _setupQuadrature(self):
Modified: short/3D/PyLith/trunk/pylith/solver/SolverLinear.py
===================================================================
--- short/3D/PyLith/trunk/pylith/solver/SolverLinear.py 2007-05-31 16:48:04 UTC (rev 7013)
+++ short/3D/PyLith/trunk/pylith/solver/SolverLinear.py 2007-05-31 17:32:08 UTC (rev 7014)
@@ -66,6 +66,7 @@
"""
Solve linear system.
"""
+ self._info.log("Solving linear equations.")
self.cppHandle.solve(fieldOut, jacobian, fieldIn)
return
More information about the cig-commits
mailing list