SyFi
0.3
|
Public Member Functions | |
def | __init__ |
def | setUp |
def | tearDown |
def | testSetup |
def | testValueShapes |
def | testGeometryDimensions |
def | testTopologyDimensions |
def | testArguments |
def | testDofTopology |
def | testPointEvaluation |
def | testCoordinates |
def | testSubHierarchy |
Public Attributes | |
P1 | |
P2 | |
Q | |
VQ | |
V1 | |
V2 | |
T1 | |
T2 | |
TH | |
M | |
P1rep | |
P2rep | |
Qrep | |
VQrep | |
V1rep | |
V2rep | |
T1rep | |
T2rep | |
THrep | |
Mrep | |
reps |
Definition at line 35 of file element_representations.py.
def element_representations.ElementRepresentationTest.__init__ | ( | self, | |
args, | |||
kwargs | |||
) |
Definition at line 36 of file element_representations.py.
Definition at line 39 of file element_representations.py.
00039 00040 def setUp(self): 00041 SyFi.initSyFi(2) 00042 polygon = "triangle" 00043 00044 self.P1 = FiniteElement("CG", polygon, 1) 00045 self.P2 = FiniteElement("CG", polygon, 2) 00046 self.Q = FiniteElement("Q", polygon, 1) 00047 self.VQ = VectorElement("Q", polygon, 1) 00048 self.V1 = VectorElement("CG", polygon, 1) 00049 self.V2 = VectorElement("CG", polygon, 2) 00050 self.T1 = TensorElement("CG", polygon, 1, symmetry=True) 00051 self.T2 = TensorElement("CG", polygon, 2, symmetry=True) 00052 self.TH = self.V2 * self.P1 00053 self.M = MixedElement(self.T1, self.V1, self.P1) 00054 00055 self.P1rep = ElementRepresentation(self.P1) 00056 self.P2rep = ElementRepresentation(self.P2) 00057 self.Qrep = ElementRepresentation(self.Q, quad_rule = find_quadrature_rule(polygon, 2)) 00058 self.VQrep = ElementRepresentation(self.VQ, quad_rule = find_quadrature_rule(polygon, 2)) 00059 self.V1rep = ElementRepresentation(self.V1) 00060 self.V2rep = ElementRepresentation(self.V2) 00061 self.T1rep = ElementRepresentation(self.T1) 00062 self.T2rep = ElementRepresentation(self.T2) 00063 self.THrep = ElementRepresentation(self.TH) 00064 self.Mrep = ElementRepresentation(self.M) 00065 00066 self.reps = [getattr(self, d) for d in dir(self) if isinstance(getattr(self, d), ElementRepresentation)]
Definition at line 67 of file element_representations.py.
Definition at line 109 of file element_representations.py.
References element_representations.ElementRepresentationTest.reps.
00109 00110 def testArguments(self): 00111 # Tests that for each basisfunction there is at least one nonzero value component 00112 #for rep in (self.P1rep, self.V1rep, self.T1rep): 00113 #for rep in (self.V1rep, ): 00114 for rep in self.reps: 00115 if rep.ufl_element.family() == "Quadrature"\ 00116 or rep.ufl_element.family() == "Boundary Quadrature": 00117 continue 00118 #print 00119 #print rep 00120 for i in range(rep.local_dimension): 00121 zeros = 0 00122 for c in ufl.permutation.compute_indices(rep.value_shape): 00123 #print "Calling basis_function(", i, c, ") for element ", repr(rep.ufl_element) 00124 N = rep.basis_function(i, c) 00125 #print i, c, N 00126 if N == 0.0: 00127 zeros += 1 00128 self.assertTrue(zeros < rep.value_size) 00129 if rep.local_dimension > 1 and rep.value_size > 1: 00130 self.assertTrue(zeros > 0) # This should hold for compositions of scalar elements 00131 # FIXME: Test something more
Definition at line 163 of file element_representations.py.
References element_representations.ElementRepresentationTest.reps.
00163 00164 def testCoordinates(self): 00165 for rep in self.reps: 00166 #print 00167 #print rep.ufl_element 00168 for i in range(rep.local_dimension): 00169 x = rep.dof_x[i] 00170 xi = rep.dof_xi[i] 00171 #print i, xi 00172 #x2 = rep.xi_to_x(xi) 00173 #xi2 = rep.x_to_xi(x) 00174 #self.assertTrue(x2 == x) 00175 #self.assertTrue(xi2 == xi) 00176 # FIXME: Test something more
Definition at line 132 of file element_representations.py.
References element_representations.ElementRepresentationTest.reps.
00132 00133 def testDofTopology(self): 00134 def triangle_entities(): 00135 for d in range(2): 00136 for i in range((3,3,1)[d]): 00137 yield (d,i) 00138 for rep in self.reps: 00139 for (d,i) in triangle_entities(): 00140 dofs = rep.entity_dofs[d][i] 00141 self.assertTrue(len(dofs) == rep.num_entity_dofs[d]) 00142 # FIXME: Test something more
Definition at line 85 of file element_representations.py.
References element_representations.ElementRepresentationTest.Mrep, element_representations.ElementRepresentationTest.P1rep, element_representations.ElementRepresentationTest.P2rep, element_representations.ElementRepresentationTest.Qrep, element_representations.ElementRepresentationTest.T1rep, element_representations.ElementRepresentationTest.T2rep, element_representations.ElementRepresentationTest.THrep, element_representations.ElementRepresentationTest.V1rep, element_representations.ElementRepresentationTest.V2rep, and element_representations.ElementRepresentationTest.VQrep.
00085 00086 def testGeometryDimensions(self): 00087 self.assertTrue( self.P1rep.geometric_dimension == 2 ) 00088 self.assertTrue( self.P2rep.geometric_dimension == 2 ) 00089 self.assertTrue( self.Qrep.geometric_dimension == 2 ) 00090 self.assertTrue( self.VQrep.geometric_dimension == 2 ) 00091 self.assertTrue( self.V1rep.geometric_dimension == 2 ) 00092 self.assertTrue( self.V2rep.geometric_dimension == 2 ) 00093 self.assertTrue( self.T1rep.geometric_dimension == 2 ) 00094 self.assertTrue( self.T2rep.geometric_dimension == 2 ) 00095 self.assertTrue( self.THrep.geometric_dimension == 2 ) 00096 self.assertTrue( self.Mrep.geometric_dimension == 2 )
Definition at line 143 of file element_representations.py.
References element_representations.ElementRepresentationTest.P1rep, and element_representations.ElementRepresentationTest.P2rep.
00143 00144 def testPointEvaluation(self): 00145 # Tests that the property { N_k(\xi_j) == \delta_{kj} } holds for scalar elements. 00146 for rep in (self.P1rep, self.P2rep): 00147 for i in range(rep.local_dimension): 00148 x = rep.dof_x[i] 00149 xi = rep.dof_xi[i] 00150 00151 repmap = swiginac.exmap() 00152 for j in range(2): 00153 repmap[rep.p[j]] = xi[j] 00154 00155 for k in range(rep.local_dimension): 00156 c = () # Assuming scalar element here: 00157 N = rep.basis_function(k, c) 00158 Nxi = N.subs(repmap) 00159 if i == k: 00160 self.assertTrue(Nxi == 1.0) 00161 else: 00162 self.assertTrue(Nxi == 0.0)
Definition at line 70 of file element_representations.py.
Definition at line 177 of file element_representations.py.
References element_representations.ElementRepresentationTest.Mrep, element_representations.ElementRepresentationTest.P1rep, element_representations.ElementRepresentationTest.P2rep, element_representations.ElementRepresentationTest.Qrep, element_representations.ElementRepresentationTest.T1rep, element_representations.ElementRepresentationTest.T2rep, element_representations.ElementRepresentationTest.THrep, element_representations.ElementRepresentationTest.V1rep, element_representations.ElementRepresentationTest.V2rep, and element_representations.ElementRepresentationTest.VQrep.
00177 00178 def testSubHierarchy(self): 00179 self.assertTrue(len(self.P1rep.sub_elements) == 0 ) 00180 self.assertTrue(len(self.P2rep.sub_elements) == 0 ) 00181 self.assertTrue(len(self.Qrep.sub_elements) == 0 ) 00182 self.assertTrue(len(self.VQrep.sub_elements) == 2 ) 00183 self.assertTrue(len(self.V1rep.sub_elements) == 2 ) 00184 self.assertTrue(len(self.V2rep.sub_elements) == 2 ) 00185 self.assertTrue(len(self.T1rep.sub_elements) == 3 ) 00186 self.assertTrue(len(self.T2rep.sub_elements) == 3 ) 00187 self.assertTrue(len(self.THrep.sub_elements) == 2 ) 00188 self.assertTrue(len(self.Mrep.sub_elements) == 3 ) 00189
Definition at line 97 of file element_representations.py.
References element_representations.ElementRepresentationTest.Mrep, element_representations.ElementRepresentationTest.P1rep, element_representations.ElementRepresentationTest.P2rep, element_representations.ElementRepresentationTest.Qrep, element_representations.ElementRepresentationTest.T1rep, element_representations.ElementRepresentationTest.T2rep, element_representations.ElementRepresentationTest.THrep, element_representations.ElementRepresentationTest.V1rep, element_representations.ElementRepresentationTest.V2rep, and element_representations.ElementRepresentationTest.VQrep.
00097 00098 def testTopologyDimensions(self): 00099 self.assertTrue( self.P1rep.topological_dimension == 2 ) 00100 self.assertTrue( self.P2rep.topological_dimension == 2 ) 00101 self.assertTrue( self.Qrep.topological_dimension == 2 ) 00102 self.assertTrue( self.VQrep.topological_dimension == 2 ) 00103 self.assertTrue( self.V1rep.topological_dimension == 2 ) 00104 self.assertTrue( self.V2rep.topological_dimension == 2 ) 00105 self.assertTrue( self.T1rep.topological_dimension == 2 ) 00106 self.assertTrue( self.T2rep.topological_dimension == 2 ) 00107 self.assertTrue( self.THrep.topological_dimension == 2 ) 00108 self.assertTrue( self.Mrep.topological_dimension == 2 )
Definition at line 73 of file element_representations.py.
00073 00074 def testValueShapes(self): 00075 self.assertTrue( self.P1rep.value_shape == () ) 00076 self.assertTrue( self.P2rep.value_shape == () ) 00077 self.assertTrue( self.Qrep.value_shape == () ) 00078 self.assertTrue( self.VQrep.value_shape == (2,) ) 00079 self.assertTrue( self.V1rep.value_shape == (2,) ) 00080 self.assertTrue( self.V2rep.value_shape == (2,) ) 00081 self.assertTrue( self.T1rep.value_shape == (2,2) ) 00082 self.assertTrue( self.T2rep.value_shape == (2,2) ) 00083 self.assertTrue( self.THrep.value_shape == (2+1,) ) 00084 self.assertTrue( self.Mrep.value_shape == (4+2+1,) )
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testPointEvaluation(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testPointEvaluation(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().
Definition at line 39 of file element_representations.py.
Definition at line 39 of file element_representations.py.
Referenced by element_representations.ElementRepresentationTest.testGeometryDimensions(), element_representations.ElementRepresentationTest.testSubHierarchy(), element_representations.ElementRepresentationTest.testTopologyDimensions(), and element_representations.ElementRepresentationTest.testValueShapes().