def _setupInterfaces(self, interfaceConditions): """ Setup interfaces as integrators or constraints. """ from pylith.feassemble.Integrator import implementsIntegrator from pylith.feassemble.Constraint import implementsConstraint from pylith.mpi.Communicator import mpi_comm_world comm = mpi_comm_world() if 0 == comm.rank: self._info.log("Pre-initializing interior interfaces.") for ic in interfaceConditions.components(): ic.preinitialize(self.mesh()) foundType = False if implementsIntegrator(ic): foundType = True self.integrators.append(ic) if 0 == comm.rank: self._info.log("Added interface condition '%s' as an integrator." % \ ic.label()) if implementsConstraint(ic): foundType = True self.constraints.append(ic) if 0 == comm.rank: self._info.log("Added interface condition '%s' as a constraint." % \ ic.label()) if not foundType: raise TypeError, \ "Could not determine whether interface condition '%s' is an " \ "integrator or a constraint." % ic.name self._debug.log(resourceUsageString()) return
def _setupBC(self, boundaryConditions): """ Setup boundary conditions as integrators or constraints. """ from pylith.feassemble.Integrator import implementsIntegrator from pylith.feassemble.Constraint import implementsConstraint from pylith.bc.PointForce import PointForce from pylith.mpi.Communicator import mpi_comm_world comm = mpi_comm_world() if 0 == comm.rank: self._info.log("Pre-initializing boundary conditions.") self._debug.log(resourceUsageString()) for bc in boundaryConditions.components(): bc.preinitialize(self.mesh()) foundType = False if implementsIntegrator(bc): foundType = True self.integrators.append(bc) if 0 == comm.rank: self._info.log("Added boundary condition '%s' as an integrator." % \ bc.label()) if implementsConstraint(bc): foundType = True self.constraints.append(bc) if 0 == comm.rank: self._info.log("Added boundary condition '%s' as a constraint." % \ bc.label()) if not foundType: raise TypeError, \ "Could not determine whether boundary condition '%s' is an " \ "integrator or a constraint." % bc.name self._debug.log(resourceUsageString()) return
def test_implementsConstraint(self): """ Test to make sure DirichletBC satisfies constraint requirements. """ bc = DirichletBC() from pylith.feassemble.Constraint import implementsConstraint self.failUnless(implementsConstraint(bc)) return