Run issue in Poroelasticity Test


I am trying to run a test example (included with ASCII mesh (3.1 KB) ) on a poroelastic test build using the following branch:

Upon run I get an error with the following traceback:

Traceback (most recent call last):
  File "/home/dockimble/build/pylith/lib/python2.7/site-packages/pylith/apps/", line 74, in onComputeNodes
    self.main(*args, **kwds)
  File "/home/dockimble/build/pylith/lib/python2.7/site-packages/pylith/apps/", line 114, in main
  File "/home/dockimble/build/pylith/lib/python2.7/site-packages/pylith/problems/", line 104, in preinitialize
    Problem.preinitialize(self, mesh)
  File "/home/dockimble/build/pylith/lib/python2.7/site-packages/pylith/problems/", line 157, in preinitialize
  File "/home/dockimble/build/pylith/lib/python2.7/site-packages/pylith/materials/", line 81, in preinitialize
  File "/home/dockimble/build/pylith/lib/python2.7/site-packages/pylith/materials/", line 63, in preinitialize
    RheologyPoroelasticity.preinitialize(self, mesh)
  File "/home/dockimble/build/pylith/lib/python2.7/site-packages/pylith/materials/", line 58, in preinitialize
  File "/home/dockimble/build/pylith/lib/python2.7/site-packages/pylith/materials/", line 74, in _createModuleObj
  File "/home/dockimble/build/pylith/lib/python2.7/site-packages/pylith/materials/", line 428, in __init__
    def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined - class is abstract")
AttributeError: No constructor defined - class is abstract

Any help with respect to what I am doing wrong would be greatly appreciated.


The problem is that the compiler thinks your C++ IsotropicLinearPoroelasticity object is abstract.
Look at the SWIG output when you build the materials module. When it runs SWIG, you should see it output which methods are still abstract (defined as pure virtual methods in the RheologyPoroelasticity parent class), that need to be implemented in the IsotropicLinearPoroelasticity class.

I think I have the abstract class issue handled for the same branch. Running the same test as before (file included), only removing all boundary conditions, results in a PETSc error reporting that, “no coordinate dimension exists for this DS” (message also included). I believe this to be related to the auxiliary fields not setting up correctly. (4.8 KB)

Nevermind, I found it; createAuxiliaryField in under libsrc/pylith/materials didn’t call " auxiliaryField->createDiscretization();"