[cig-commits] r6908 - in short/3D/PyLith/trunk: . libsrc libsrc/bc
pylith/bc
brad at geodynamics.org
brad at geodynamics.org
Wed May 16 15:09:21 PDT 2007
Author: brad
Date: 2007-05-16 15:09:21 -0700 (Wed, 16 May 2007)
New Revision: 6908
Added:
short/3D/PyLith/trunk/libsrc/bc/
short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.cc
short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.hh
short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.icc
short/3D/PyLith/trunk/libsrc/bc/Dirichlet.cc
short/3D/PyLith/trunk/libsrc/bc/Dirichlet.hh
short/3D/PyLith/trunk/libsrc/bc/Dirichlet.icc
short/3D/PyLith/trunk/libsrc/bc/Makefile.am
Modified:
short/3D/PyLith/trunk/TODO
short/3D/PyLith/trunk/configure.ac
short/3D/PyLith/trunk/libsrc/Makefile.am
short/3D/PyLith/trunk/pylith/bc/BoundaryCondition.py
short/3D/PyLith/trunk/pylith/bc/Dirichlet.py
Log:
Worked on implementing Dirichlet boundary conditions.
Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/TODO 2007-05-16 22:09:21 UTC (rev 6908)
@@ -13,7 +13,13 @@
dimensions, we probably want to allow it in MeshIO, just not in the
simulation where we don't support it.
-1. Add dualBasis to Quadrature.
+1. Implement Dirichlet boundary conditions
+ a. C++
+ b. Python
+ c. C++ unit tests
+ d. Python unit tests
+
+2. Add dualBasis to Quadrature.
a. Python
ReferenceCell
FIATSimplex
@@ -23,12 +29,6 @@
c. C++ unit tests
d. Python unit tests
-2. Implement Dirichlet boundary conditions
- a. C++
- b. Python
- c. C++ unit tests
- d. Python unit tests
-
3. Implement faults for kinematic source
a. Creation of cohesive cells
i. Add tests for interpolated meshes.
Modified: short/3D/PyLith/trunk/configure.ac
===================================================================
--- short/3D/PyLith/trunk/configure.ac 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/configure.ac 2007-05-16 22:09:21 UTC (rev 6908)
@@ -201,6 +201,7 @@
AC_CONFIG_FILES([Makefile
pylith/Makefile
libsrc/Makefile
+ libsrc/bc/Makefile
libsrc/feassemble/Makefile
libsrc/faults/Makefile
libsrc/materials/Makefile
Modified: short/3D/PyLith/trunk/libsrc/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/libsrc/Makefile.am 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/libsrc/Makefile.am 2007-05-16 22:09:21 UTC (rev 6908)
@@ -12,15 +12,18 @@
SUBDIRS = \
utils \
+ topology \
+ meshio \
feassemble \
+ bc \
faults \
- materials \
- meshio \
- topology
+ materials
lib_LTLIBRARIES = libpylith.la
libpylith_la_SOURCES = \
+ bc/BoundaryCondition.cc \
+ bc/Dirichlet.cc \
faults/BruneSlipFn.cc \
faults/CohesiveTopology.cc \
faults/EqKinSrc.cc \
Added: short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.cc 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.cc 2007-05-16 22:09:21 UTC (rev 6908)
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "BoundaryCondition.hh" // implementation of object methods
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::bc::BoundaryCondition::BoundaryCondition(void) :
+ _id(0),
+ _label(""),
+ _db(0)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Destructor.
+pylith::bc::BoundaryCondition::~BoundaryCondition(void)
+{ // destructor
+ _db = 0;
+} // destructor
+
+// ----------------------------------------------------------------------
+// Set constrained degrees of freedom in field.
+void
+pylith::bc::BoundaryCondition::setConstraints(
+ const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh)
+{ // setConstraints
+} // setConstraints
+
+// ----------------------------------------------------------------------
+// Set constrained degrees of freedom in field.
+void
+pylith::bc::BoundaryCondition::integrateJacobian(
+ PetscMat* jacobian,
+ const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh)
+{ // integrateJacobian
+} // integrateJacobian
+
+// ----------------------------------------------------------------------
+// Set constrained degrees of freedom in field.
+void
+pylith::bc::BoundaryCondition::integrateResidual(
+ const ALE::Obj<real_section_type>& residual,
+ const ALE::Obj<real_section_type>& fieldT,
+ const ALE::Obj<real_section_type>& fieldTmdt,
+ const ALE::Obj<ALE::Mesh>& mesh)
+{ // integrateResidual
+} // integrateResidual
+
+// ----------------------------------------------------------------------
+// Set values in field.
+void
+pylith::bc::BoundaryCondition::setField(const double t,
+ const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh)
+{ // setField
+} // setField
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.hh 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.hh 2007-05-16 22:09:21 UTC (rev 6908)
@@ -0,0 +1,168 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/** @file libsrc/bc/BoundaryCondition.hh
+ *
+ * @brief C++ abstract base class for BoundaryCondition object.
+ *
+ * Interface definition for boundary conditions.
+ */
+
+#if !defined(pylith_bc_boundarycondition_hh)
+#define pylith_bc_boundarycondition_hh
+
+#include "pylith/utils/sievetypes.hh" // USES PETSc Mesh, real_section_type
+#include "pylith/utils/petscfwd.h" // USES PETScMat
+
+#include <string> // HASA std::string
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace bc {
+ class BoundaryCondition;
+ class TestBoundaryCondition; // unit testing
+ } // bc
+} // pylith
+
+/// Namespace for spatialdata package
+namespace spatialdata {
+ namespace geocoords {
+ class CoordSys;
+ } // geocoords
+
+ namespace spatialdb {
+ class SpatialDB;
+ } // spatialdb
+} // spatialdata
+
+/// C++ abstract base class for BoundaryCondition object.
+class pylith::bc::BoundaryCondition
+{ // class BoundaryCondition
+ friend class TestBoundaryCondition; // unit testing
+
+ // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ BoundaryCondition(void);
+
+ /// Destructor.
+ virtual
+ ~BoundaryCondition(void);
+
+ /** Set identifier of fault.
+ *
+ * @param value BoundaryCondition identifier
+ */
+ void id(const int value);
+
+ /** Get identifier of fault.
+ *
+ * @returns BoundaryCondition identifier
+ */
+ int id(void) const;
+
+ /** Set label of fault.
+ *
+ * @param value Label of fault
+ */
+ void label(const char* value);
+
+ /** Get label of fault.
+ *
+ * @returns Label of fault
+ */
+ const std::string& label(void) const;
+
+ /** Set database for boundary condition parameters.
+ *
+ * @param db Spatial database
+ */
+ void db(spatialdata::spatialdb::SpatialDB* const db);
+
+ /** Initialize boundary condition.
+ *
+ * @param mesh PETSc mesh
+ * @param cs Coordinate system for mesh
+ */
+ virtual
+ void initialize(const ALE::Obj<ALE::Mesh>& mesh,
+ const spatialdata::geocoords::CoordSys* cs) = 0;
+
+ /** Set constrained degrees of freedom in field.
+ *
+ * @param field Solution field
+ * @param mesh PETSc mesh
+ */
+ virtual
+ void setConstraints(const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh);
+
+ /** Set constrained degrees of freedom in field.
+ *
+ * @param jacobian Matrix for Jacobian of system
+ * @param field Solution field
+ * @param mesh PETSc mesh
+ */
+ virtual
+ void integrateJacobian(PetscMat* jacobian,
+ const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh);
+
+ /** Set constrained degrees of freedom in field.
+ *
+ * @param residual Residual field
+ * @param fieldT Solution field at time t
+ * @param fieldTmdt Solution field at time t-dt
+ * @param mesh PETSc mesh
+ */
+ virtual
+ void integrateResidual(const ALE::Obj<real_section_type>& residual,
+ const ALE::Obj<real_section_type>& fieldT,
+ const ALE::Obj<real_section_type>& fieldTmdt,
+ const ALE::Obj<ALE::Mesh>& mesh);
+
+ /** Set values in field.
+ *
+ * @param t Current time
+ * @param field Solution field
+ * @param mesh PETSc mesh
+ */
+ virtual
+ void setField(const double t,
+ const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh);
+
+ // NOT IMPLEMENTED ////////////////////////////////////////////////////
+private :
+
+ /// Not implemented
+ BoundaryCondition(const BoundaryCondition& m);
+
+ /// Not implemented
+ const BoundaryCondition& operator=(const BoundaryCondition& m);
+
+ // PROTECTED MEMBERS //////////////////////////////////////////////////
+protected :
+
+ int _id; ///< BoundaryCondition identifier
+ std::string _label; ///< Label of fault
+ spatialdata::spatialdb::SpatialDB* _db; ///< Spatial database w/parameters
+
+}; // class BoundaryCondition
+
+#include "BoundaryCondition.icc" // inline methods
+
+#endif // pylith_bc_boundarycondition_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.icc 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/libsrc/bc/BoundaryCondition.icc 2007-05-16 22:09:21 UTC (rev 6908)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#if !defined(pylith_bc_boundarycondition_hh)
+#error "BoundaryCondition.icc can only be included from BoundaryCondition.hh"
+#endif
+
+// Set identifier of fault.
+inline
+void
+pylith::bc::BoundaryCondition::id(const int value) {
+ _id = value;
+}
+
+// Get identifier of fault.
+inline
+int
+pylith::bc::BoundaryCondition::id(void) const {
+ return _id;
+}
+
+// Set name of fault.
+inline
+void
+pylith::bc::BoundaryCondition::label(const char* value) {
+ _label = value;
+}
+
+// Get label of fault.
+inline
+const std::string&
+pylith::bc::BoundaryCondition::label(void) const {
+ return _label;
+}
+
+// Set database for boundary condition parameters.
+inline
+void
+pylith::bc::BoundaryCondition::db(spatialdata::spatialdb::SpatialDB* const db) {
+ _db = db;
+}
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/bc/Dirichlet.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/Dirichlet.cc 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/libsrc/bc/Dirichlet.cc 2007-05-16 22:09:21 UTC (rev 6908)
@@ -0,0 +1,55 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "Dirichlet.hh" // implementation of object methods
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::bc::Dirichlet::Dirichlet(void)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Destructor.
+pylith::bc::Dirichlet::~Dirichlet(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Initialize boundary condition.
+void
+pylith::bc::Dirichlet::initialize(const ALE::Obj<ALE::Mesh>& mesh,
+ const spatialdata::geocoords::CoordSys* cs)
+{ // initialize
+} // initialize
+
+// ----------------------------------------------------------------------
+// Set constrained degrees of freedom in field.
+void
+pylith::bc::Dirichlet::setConstraints(const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh)
+{ // setConstraints
+} // setConstraints
+
+// ----------------------------------------------------------------------
+// Set values in field.
+void
+pylith::bc::Dirichlet::setField(const double t,
+ const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh)
+{ // setField
+} // setField
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/bc/Dirichlet.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/Dirichlet.hh 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/libsrc/bc/Dirichlet.hh 2007-05-16 22:09:21 UTC (rev 6908)
@@ -0,0 +1,109 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/** @file libsrc/bc/Dirichlet.hh
+ *
+ * @brief C++ implementation of Dirichlet (prescribed values at
+ * degrees of freedom) boundary conditions.
+ */
+
+#if !defined(pylith_bc_dirichlet_hh)
+#define pylith_bc_dirichlet_hh
+
+#include "BoundaryCondition.hh" // ISA BoundaryCondition
+
+#include "pylith/utils/array.hh" // USES std::vector, double_array, int_array
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace bc {
+ class Dirichlet;
+ class TestDirichlet; // unit testing
+ } // bc
+} // pylith
+
+
+/// C++ implementation of Dirichlet boundary conditions.
+class pylith::bc::Dirichlet : public BoundaryCondition
+{ // class Dirichlet
+ friend class TestDirichlet; // unit testing
+
+ // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ Dirichlet(void);
+
+ /// Destructor.
+ ~Dirichlet(void);
+
+ /** Set indices of fixed degrees of freedom.
+ *
+ * Note: all points associated with boundary condition has same
+ * degrees of freedom fixed.
+ *
+ * Example: [0, 1] to fix x and y degrees of freedom in Cartesian system.
+ *
+ * @param flags Indices of fixed degrees of freedom.
+ */
+ void fixedDOF(const int_array& flags);
+
+ /** Initialize boundary condition.
+ *
+ * @param mesh PETSc mesh
+ * @param cs Coordinate system for mesh
+ */
+ void initialize(const ALE::Obj<ALE::Mesh>& mesh,
+ const spatialdata::geocoords::CoordSys* cs);
+
+ /** Set constrained degrees of freedom in field.
+ *
+ * @param field Solution field
+ * @param mesh PETSc mesh
+ */
+ void setConstraints(const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh);
+
+ /** Set values in field.
+ *
+ * @param t Current time
+ * @param field Solution field
+ * @param mesh PETSc mesh
+ */
+ void setField(const double t,
+ const ALE::Obj<real_section_type>& field,
+ const ALE::Obj<ALE::Mesh>& mesh);
+
+ // NOT IMPLEMENTED ////////////////////////////////////////////////////
+private :
+
+ /// Not implemented
+ Dirichlet(const Dirichlet& m);
+
+ /// Not implemented
+ const Dirichlet& operator=(const Dirichlet& m);
+
+ // PRIVATE MEMBERS ////////////////////////////////////////////////////
+private :
+
+ std::vector<Mesh::point_type> _points; ///< Locations of boundary condition
+ double_array _values; ///< Values at degrees of freedom
+ int_array _fixedDOF; ///< Indices of fixed degrees of freedom
+
+}; // class Dirichlet
+
+#include "Dirichlet.icc" // inline methods
+
+#endif // pylith_bc_fault_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/bc/Dirichlet.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/Dirichlet.icc 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/libsrc/bc/Dirichlet.icc 2007-05-16 22:09:21 UTC (rev 6908)
@@ -0,0 +1,25 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#if !defined(pylith_bc_dirichlet_hh)
+#error "Dirichlet.icc can only be included from Dirichlet.hh"
+#endif
+
+// Set indices of fixed degrees of freedom.
+inline
+void
+pylith::bc::Dirichlet::fixedDOF(const int_array& flags) {
+ _fixedDOF = flags;
+} // fixedDOF
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/bc/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/Makefile.am 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/libsrc/bc/Makefile.am 2007-05-16 22:09:21 UTC (rev 6908)
@@ -0,0 +1,30 @@
+# -*- Makefile -*-
+#
+# ----------------------------------------------------------------------
+#
+# Brad T. Aagaard
+# U.S. Geological Survey
+#
+# <LicenseText>
+#
+# ----------------------------------------------------------------------
+#
+
+subpackage = bc
+include $(top_srcdir)/subpackage.am
+
+subpkginclude_HEADERS = \
+ BoundaryCondition.hh \
+ BoundaryCondition.icc \
+ Dirichlet.hh \
+ Dirichlet.icc
+
+noinst_HEADERS =
+
+# export
+clean-local: clean-subpkgincludeHEADERS
+BUILT_SOURCES = export-subpkgincludeHEADERS
+CLEANFILES = export-subpkgincludeHEADERS
+
+
+# End of file
Modified: short/3D/PyLith/trunk/pylith/bc/BoundaryCondition.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/BoundaryCondition.py 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/pylith/bc/BoundaryCondition.py 2007-05-16 22:09:21 UTC (rev 6908)
@@ -81,24 +81,35 @@
"""
Initialize boundary condition.
"""
+ assert(None != self.cppHandle)
+ self.cppHandle.id = self.id
+ self.cppHandle.label = self.label
+ self.cppHandle.db = self.db.cppHandle
return
- def integrateJacobian(self, jacobian, field):
+ def setConstraints(self, field, mesh):
"""
+ Set constraints in field.
+ """
+ return
+
+
+ def integrateJacobian(self, jacobian, field, mesh):
+ """
Integrate contribution to Jacobian.
"""
return
- def integrateResidual(self, residual, fieldT, fieldTmdt):
+ def integrateResidual(self, residual, fieldT, fieldTmdt, mesh):
"""
Integrate contribution to residual.
"""
return
- def setField(self, field, t):
+ def setField(self, t, field, mesh):
"""
Set solution field at time t.
"""
Modified: short/3D/PyLith/trunk/pylith/bc/Dirichlet.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/Dirichlet.py 2007-05-16 22:08:47 UTC (rev 6907)
+++ short/3D/PyLith/trunk/pylith/bc/Dirichlet.py 2007-05-16 22:09:21 UTC (rev 6908)
@@ -19,6 +19,23 @@
from BoundaryCondition import BoundaryCondition
+def validateDOF(value):
+ """
+ Validate list of fixed degrees of freedom.
+ """
+ try:
+ size = len(value)
+ num = map(float, value)
+ for v in num:
+ if v < 0:
+ raise ValueError
+ except:
+ raise ValueError, \
+ "'fixed_dof' must be a zero based list of indices of fixed " \
+ "degrees of freedom."
+ return value
+
+
# Dirichlet class
class Dirichlet(BoundaryCondition):
"""
@@ -28,6 +45,29 @@
Factory: boundary_condition
"""
+ # INVENTORY //////////////////////////////////////////////////////////
+
+ class Inventory(Component.Inventory):
+ """
+ Python object for managing BoundaryCondition facilities and properties.
+ """
+
+ ## @class Inventory
+ ## Python object for managing BoundaryCondition facilities and properties.
+ ##
+ ## \b Properties
+ ## @li \b fixed_dof Indices of fixed DOF (0=1st DOF, 1=2nd DOF, etc).
+ ##
+ ## \b Facilities
+ ## @li None
+
+ import pyre.inventory
+
+ fixeDOF = pyre.inventory.list("fixed_dof", default=[],
+ validator=validateDOF)
+ fixedDOF.meta['tip'] = "Indices of fixed DOF (0=1st DOF, 1=2nd DOF, etc)."
+
+
# PUBLIC METHODS /////////////////////////////////////////////////////
def __init__(self, name="dirichlet"):
@@ -35,8 +75,9 @@
Constructor.
"""
BoundaryCondition.__init__(self, name)
- #import pylith.bc.bc as bindings
- #self.cppHandle = bindings.Dirichlet()
+ self.fixedDOF = []
+ import pylith.bc.bc as bindings
+ self.cppHandle = bindings.Dirichlet()
return
@@ -44,13 +85,27 @@
"""
Initialize Dirichlet boundary condition.
"""
+ BoundaryCondition.initialize(self, mesh)
+ self.cppHandle.fixedDOF = fixedDOF
+ self.cppHandle.initialize(mesh.cppHandle, mesh.coordsys)
return
- def setField(self, field, t):
+ def setConstraints(self, field, mesh):
"""
+ Set constraints in field.
+ """
+ assert(None != self.cppHandle)
+ self.cppHandle.setConstraints(field)
+ return
+
+
+ def setField(self, t, field, mesh):
+ """
Set solution field at time t.
"""
+ assert(None != self.cppHandle)
+ self.cppHandle.setField(field, t)
return
@@ -61,6 +116,7 @@
Setup members using inventory.
"""
BoundaryCondition._configure(self)
+ self.fixedDOF = self.inventory.fixedDOF
return
More information about the cig-commits
mailing list