SyFi
0.3
|
Public Member Functions | |
def | __init__ |
def | setUp |
def | tearDown |
def | testSetup |
def | testJitVolumeInterval |
def | testJitVolumeTriangle |
def | testJitVolumeTetrahedron |
def | testJitConstantInterval |
def | testJitConstantTriangle |
def | testJitConstantTetrahedron |
Public Attributes | |
options | |
Private Member Functions | |
def | _testJitVolume |
def | _testJitVolumeQuadrilateral |
def | _testJitVolumeHexahedron |
def | _testJitConstant |
def | _testJitConstantQuadrilateral |
def | _testJitConstantHexahedron |
Definition at line 37 of file volumes.py.
def volumes.VolumeTest.__init__ | ( | self, | |
args, | |||
kwargs | |||
) |
Definition at line 38 of file volumes.py.
def volumes.VolumeTest._testJitConstant | ( | self, | |
polygon, | |||
degree | |||
) | [private] |
Test that the integral of a constant coefficient over a unit cell mesh equals the constant times the volume of the unit cell.
Definition at line 89 of file volumes.py.
References cell_assembly.assemble_on_cell(), volumes.num_integrals(), quadjit.QuadJitTest.options, volumes.VolumeTest.options, jit.JitTest.options, and element_indexing.ElementIndexingTest.options.
Referenced by volumes.VolumeTest._testJitConstantHexahedron(), sfc_jit.test.SFCJitTest._testJitConstantHexahedron(), volumes.VolumeTest._testJitConstantQuadrilateral(), sfc_jit.test.SFCJitTest._testJitConstantQuadrilateral(), volumes.VolumeTest.testJitConstantInterval(), sfc_jit.test.SFCJitTest.testJitConstantInterval(), volumes.VolumeTest.testJitConstantTetrahedron(), sfc_jit.test.SFCJitTest.testJitConstantTetrahedron(), volumes.VolumeTest.testJitConstantTriangle(), and sfc_jit.test.SFCJitTest.testJitConstantTriangle().
00089 00090 def _testJitConstant(self, polygon, degree): 00091 """Test that the integral of a constant coefficient over a unit 00092 cell mesh equals the constant times the volume of the unit cell.""" 00093 element = FiniteElement("CG", polygon, degree) 00094 f = Coefficient(element) 00095 a = f*dx 00096 form, module, formdata = sfc.jit(a, parameters = self.options) 00097 self.assertTrue(form.rank() == 0) 00098 self.assertTrue(form.num_coefficients() == 1) 00099 self.assertTrue(num_integrals(form) == (1,0,0)) 00100 const = 1.23 00101 A = assemble_on_cell(form, polygon, coeffs=[const]) 00102 self.assertAlmostEqual(A, const*cell2volume[polygon])
def volumes.VolumeTest._testJitConstantHexahedron | ( | self | ) | [private] |
Definition at line 123 of file volumes.py.
References volumes.VolumeTest._testJitConstant().
00123 00124 def _testJitConstantHexahedron(self): # Not supported by dolfin yet 00125 polygon = "hexahedron" 00126 self._testJitConstant(polygon, 1) 00127 self._testJitConstant(polygon, 2) 00128
def volumes.VolumeTest._testJitConstantQuadrilateral | ( | self | ) | [private] |
Definition at line 118 of file volumes.py.
References volumes.VolumeTest._testJitConstant().
00118 00119 def _testJitConstantQuadrilateral(self): # Not supported by dolfin yet 00120 polygon = "quadrilateral" 00121 self._testJitConstant(polygon, 1) 00122 self._testJitConstant(polygon, 2)
def volumes.VolumeTest._testJitVolume | ( | self, | |
polygon | |||
) | [private] |
Definition at line 63 of file volumes.py.
Referenced by volumes.VolumeTest._testJitVolumeHexahedron(), sfc_jit.test.SFCJitTest._testJitVolumeHexahedron(), volumes.VolumeTest._testJitVolumeQuadrilateral(), sfc_jit.test.SFCJitTest._testJitVolumeQuadrilateral(), volumes.VolumeTest.testJitVolumeInterval(), sfc_jit.test.SFCJitTest.testJitVolumeInterval(), volumes.VolumeTest.testJitVolumeTetrahedron(), sfc_jit.test.SFCJitTest.testJitVolumeTetrahedron(), volumes.VolumeTest.testJitVolumeTriangle(), and sfc_jit.test.SFCJitTest.testJitVolumeTriangle().
00063 00064 def _testJitVolume(self, polygon): 00065 "Test that the integral of 1.0 over a unit cell equals the length/area/volume of the unit cell." 00066 c = Constant(polygon) 00067 a = c*dx 00068 form, module, formdata = sfc.jit(a, parameters = self.options) 00069 self.assertTrue(form.rank() == 0) 00070 self.assertTrue(form.num_coefficients() == 1) 00071 self.assertTrue(num_integrals(form) == (1,0,0)) 00072 A = assemble_on_cell(form, polygon, coeffs=[1.0]) 00073 self.assertAlmostEqual(A, cell2volume[polygon])
def volumes.VolumeTest._testJitVolumeHexahedron | ( | self | ) | [private] |
Definition at line 86 of file volumes.py.
References volumes.VolumeTest._testJitVolume().
00086 00087 def _testJitVolumeHexahedron(self): # Not supported by dolfin yet 00088 self._testJitVolume("hexahedron")
def volumes.VolumeTest._testJitVolumeQuadrilateral | ( | self | ) | [private] |
Definition at line 83 of file volumes.py.
References volumes.VolumeTest._testJitVolume().
00083 00084 def _testJitVolumeQuadrilateral(self): # Not supported by dolfin yet 00085 self._testJitVolume("quadrilateral")
def volumes.VolumeTest.setUp | ( | self | ) |
Definition at line 43 of file volumes.py.
References quadjit.QuadJitTest.options, volumes.VolumeTest.options, jit.JitTest.options, and element_indexing.ElementIndexingTest.options.
00043 00044 def setUp(self): 00045 #print "Running sfc jit test in testdir" 00046 #print "Imported SyFi from location", SyFi.__file__ 00047 #print "Imported sfc from location", sfc.__file__ 00048 self.options = sfc.default_parameters() 00049 self.options.compilation.cache_dir = os.path.abspath("test_cache") 00050 # Generate code in a clean directory: 00051 shutil.rmtree(_test_temp_dir, ignore_errors=True) 00052 os.mkdir(_test_temp_dir) 00053 os.chdir(_test_temp_dir)
def volumes.VolumeTest.tearDown | ( | self | ) |
Definition at line 54 of file volumes.py.
def volumes.VolumeTest.testJitConstantInterval | ( | self | ) |
Definition at line 103 of file volumes.py.
References volumes.VolumeTest._testJitConstant().
00103 00104 def testJitConstantInterval(self): 00105 polygon = "interval" 00106 self._testJitConstant(polygon, 1) 00107 self._testJitConstant(polygon, 2)
def volumes.VolumeTest.testJitConstantTetrahedron | ( | self | ) |
Definition at line 113 of file volumes.py.
References volumes.VolumeTest._testJitConstant().
00113 00114 def testJitConstantTetrahedron(self): 00115 polygon = "tetrahedron" 00116 self._testJitConstant(polygon, 1) 00117 self._testJitConstant(polygon, 2)
def volumes.VolumeTest.testJitConstantTriangle | ( | self | ) |
Definition at line 108 of file volumes.py.
References volumes.VolumeTest._testJitConstant().
00108 00109 def testJitConstantTriangle(self): 00110 polygon = "triangle" 00111 self._testJitConstant(polygon, 1) 00112 self._testJitConstant(polygon, 2)
def volumes.VolumeTest.testJitVolumeInterval | ( | self | ) |
Definition at line 74 of file volumes.py.
References volumes.VolumeTest._testJitVolume().
00074 00075 def testJitVolumeInterval(self): 00076 self._testJitVolume("interval")
def volumes.VolumeTest.testJitVolumeTetrahedron | ( | self | ) |
Definition at line 80 of file volumes.py.
References volumes.VolumeTest._testJitVolume().
00080 00081 def testJitVolumeTetrahedron(self): 00082 self._testJitVolume("tetrahedron")
def volumes.VolumeTest.testJitVolumeTriangle | ( | self | ) |
Definition at line 77 of file volumes.py.
References volumes.VolumeTest._testJitVolume().
00077 00078 def testJitVolumeTriangle(self): 00079 self._testJitVolume("triangle")
def volumes.VolumeTest.testSetup | ( | self | ) |
Definition at line 60 of file volumes.py.
Definition at line 43 of file volumes.py.
Referenced by volumes.VolumeTest::_testJitConstant(), volumes.VolumeTest::_testJitVolume(), and volumes.VolumeTest::setUp().