------------------------------------------------------------
revno: 1498
committer: Kristian B. Ølgaard<k.b.oelga...@gmail.com>
branch nick: ffc
timestamp: Wed 2010-07-07 18:17:07 +0100
message:
Added support for CellVolume from UFL.
modified:
ChangeLog
ffc/quadrature/optimisedquadraturetransformer.py
ffc/quadrature/quadraturetransformer.py
ffc/quadrature/quadraturetransformerbase.py
Your team FFC Core Team is subscribed to branch lp:ffc.
To unsubscribe from this branch go to
https://code.launchpad.net/~ffc-core/ffc/main/+edit-subscription
=== modified file 'ChangeLog' --- ChangeLog 2010-07-01 17:43:36
+0000 +++ ChangeLog 2010-07-07 17:17:07 +0000 @@ -1,3 +1,4 @@ + -
Added support for new geometric quantity CellVolume in UFL. 0.9.3
[2010-07-01] - Make global_dimension for Real return an int
instead of double, bug # 592088 - Add support for facet normal in
1D.
=== modified file 'ffc/quadrature/optimisedquadraturetransformer.py'
--- ffc/quadrature/optimisedquadraturetransformer.py 2010-07-01
17:41:40 +0000
+++ ffc/quadrature/optimisedquadraturetransformer.py 2010-07-07
17:17:07 +0000
@@ -187,7 +187,7 @@
return {():new_val}
#
-------------------------------------------------------------------------
- # FacetNormal (geometry.py). + # FacetNormal, CellVolume
(geometry.py). #
-------------------------------------------------------------------------
def facet_normal(self, o, *operands): #print("Visiting
FacetNormal:") @@ -216,6 +216,17 @@
return {(): create_symbol(normal_component, GEO)}
+ def cell_volume(self, o, *operands): + # Safety
check. + ffc_assert(not operands, "Didn't expect any
operands for FacetNormal: " + repr(operands)) + + # FIXME:
KBO: This has to change for higher order elements + detJ =
format["det(J)"](self.restriction) + volume =
format["absolute value"](detJ) + self.trans_set.add(detJ) +
+ return {():create_symbol(volume, GEO)} + def
create_argument(self, ufl_argument, derivatives, component,
local_comp, local_offset, ffc_element,
transformation, multiindices): "Create code for basis
functions, and update relevant tables of used basis."
=== modified file 'ffc/quadrature/quadraturetransformer.py'
--- ffc/quadrature/quadraturetransformer.py 2010-06-30 09:59:49
+0000
+++ ffc/quadrature/quadraturetransformer.py 2010-07-07 17:17:07
+0000
@@ -262,7 +262,7 @@
return {():f_abs(operands[0][()])}
#
-------------------------------------------------------------------------
- # FacetNormal (geometry.py). + # FacetNormal, CellVolume
(geometry.py). #
-------------------------------------------------------------------------
def facet_normal(self, o, *operands): #print("Visiting
FacetNormal:") @@ -291,6 +291,18 @@
return {():normal_component}
+ def cell_volume(self, o, *operands): + # Safety
check. + ffc_assert(not operands, "Didn't expect any
operands for CellVolume: " + repr(operands)) + + # FIXME:
KBO: This has to change for higher order elements + detJ =
format["det(J)"](self.restriction) + volume =
format["absolute value"](detJ) + self.trans_set.add(detJ) +
+ return {():volume} + + def create_argument(self,
ufl_argument, derivatives, component, local_comp,
local_offset, ffc_element, transformation, multiindices):
"Create code for basis functions, and update relevant tables of
used basis."
=== modified file 'ffc/quadrature/quadraturetransformerbase.py'
--- ffc/quadrature/quadraturetransformerbase.py 2010-07-01 17:41:40
+0000 +++ ffc/quadrature/quadraturetransformerbase.py 2010-07-07
17:17:07 +0000 @@ -250,12 +250,16 @@ error("This object
should be implemented by the child class.")
#
-------------------------------------------------------------------------
- # FacetNormal (geometry.py). + # FacetNormal, CellVolume
(geometry.py). #
-------------------------------------------------------------------------
def facet_normal(self, o, *operands): print
"\n\nVisiting FacetNormal: ", repr(o) error("This object
should be implemented by the child class.")
+ def cell_volume(self, o, *operands): + print
"\n\nVisiting CellVolume: ", repr(o) + error("This object
should be implemented by the child class.") + #
-------------------------------------------------------------------------
# Things that can be handled by the base class. #
-------------------------------------------------------------------------