← Back to team overview

dolfin team mailing list archive

[Question #137463]: DG VectorFunctionSpace

 

New question #137463 on DOLFIN:
https://answers.launchpad.net/dolfin/+question/137463

Hello -- I seem to get different answers when I project a discontinuous vector function component by component or using the vector DG function space. I expected the difference to be machine precision. What could I be doing wrongly? Thanks, --Jay 

from dolfin import *

degree=1
n=10

mesh = UnitSquare(n,n)
Q = Expression(("(x[1]>=0.5? 10.0 : 0.0)","(x[0]>=0.5? 100.0 : 0.0)"))

VDG = VectorFunctionSpace(mesh, "DG", degree)
DG  = FunctionSpace(mesh, "DG", degree)

q   =  project(Q, VDG, degree)

qx  =  project(Q[0], DG, degree)
qy  =  project(Q[1], DG, degree)

print 'q and (qx,qy) differs by: %e, %e' % \
      ( sqrt(abs(assemble( dot(q[0]-qx,q[0]-qx)*dx, mesh=mesh))), \
        sqrt(abs(assemble( dot(q[1]-qy,q[1]-qy)*dx, mesh=mesh)))  )

n = FacetNormal(mesh)
print 'jump(q)=%e, jump(qx)=%e, jump(qy)=%e' %\
      ( sqrt(abs(assemble( jump(q,n)*jump(q,n)*dS, mesh=mesh))), \
        sqrt(abs(assemble( jump(qx)*jump(qx)*dS, mesh=mesh))),   \
        sqrt(abs(assemble( jump(qy)*jump(qy)*dS, mesh=mesh)))    )

Output: 

q and (qx,qy) differs by: 5.215406e-08, 3.885747e-07
jump(q)=3.516078e-14, jump(qx)=1.931411e-07, jump(qy)=2.697398e-06



You received this question notification because you are a member of
DOLFIN Team, which is an answer contact for DOLFIN.