Hi Anders. On Thu, Jun 23, 2011 at 3:10 PM, Anders Logg <l...@simula.no> wrote: >> >> I would just like to know how bc.apply() goes about approximating >> BC_expr. Does it take the estimated degree of BC_expr into account, or >> does it only take the degree of V into account? And is there any way >> to control this? > > It only depends on the dofs of V. For each degree of freedom of V, it > evaluates that degree of freedom on your expression.
OK, but how are those DOFs defined? For interpolatory elements that should just be a point-wise evaluation of the function you're interpolating. But the theoretical DOFs can also be defined as integrals over edges, faces, volumes depending on how the basis is constructed. Do higher degree Nedelec elements still result only in point-wise evaluation (one point per DOF), or are integrals evalued? I ask this since I changed the interpolant from a python class subclassed from dolfin.Expression to actual JIT-able Expressions, and two things happened. Firstly, the numerical results change by a maginitude larger than can be explained by machine precision effects, but not enough (I think) to indicate incorrect expressions; it looks more like what I'd expect from a different quadrature degree. Secondly, using the expressions with no form compiler optimisations lead to execution several times slower than using the python class. Even without optimisation enabled, I'd expect the JIT expressions to be much faster than the pure python expressions. When I enable form optimisation it is indeed faster than python expression equivalent. This seems to indicate to me that extra expression evaluations are happening? How could I check? Thanks Neilen > > -- > Anders > _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp