← Back to team overview

dolfin team mailing list archive

Re: [Question #111571]: update function after mesh movement

 

Question #111571 on DOLFIN changed:
https://answers.launchpad.net/dolfin/+question/111571

    Status: Open => Answered

Anders Logg proposed the following answer:
On Wed, May 19, 2010 at 01:03:25PM -0000, Patrick Riesen wrote:
> Question #111571 on DOLFIN changed:
> https://answers.launchpad.net/dolfin/+question/111571
>
>     Status: Answered => Open
>
> Patrick Riesen is still having a problem:
> Anders Logg wrote:
> > Question #111571 on DOLFIN changed:
> > https://answers.launchpad.net/dolfin/+question/111571
> >
> >     Status: Open => Answered
> >
> > Anders Logg proposed the following answer:
> > On Wed, May 19, 2010 at 11:05:17AM -0000, Patrick Riesen wrote:
> >> New question #111571 on DOLFIN:
> >> https://answers.launchpad.net/dolfin/+question/111571
> >>
> >> hello dolfins
> >>
> >> after using mesh.move(...) in  a (time-)step, i see that the vector of dofs of a function based on that mesh still correspond to the unmoved mesh, so in a next step, i need to update the function dofs to the new mesh cells.
> >>
> >> if i use tabulate_coordinates() and tabulate_dofs() and replace the old dofs with those evaluated at the new dof coordinates i should be fine, or is there something else i have to take into account?
> >>
> >> i'm not really sure what and what not is happening in dolfin concerning functions based on the mesh which is being moved.
> >>
> >> thank you for the support,
> >> regards,
> >> patrick
> >
> > I suggest taking this into account in your discretization (instead of
> > interpolating values to the new mesh). There is nothing in DOLFIN that
> > handles this automatically.
> >
> > Think about your finite element basis functions as being time-dependent:
> >
> >   phi_i = phi_i(x, t)
> >
> > Then take that into account when you set up your space-time finite
> > element discretization and note that the time derivative will hit
> > phi_i(x, t), which gives rise to an additional term, the "ALE" term
> > -grad(u)*w where w is the velocity of the mesh.
>
> yes, the (material) derivative takes the ALE form
>
> d(phi)/dt + u*grad(phi) - w*grad(phi),
>
> where u = spatial velocity and w = mesh velocity
> (and phi the trial function).
>
> that's what i have in my ufl form + implicit euler 1/dt*(phi - phi0) on
> the referential time derivative (1st term) in the ALE frame.
>
> is that what you mean?

Yes, and my point is that extra term is there to compensate for the
fact that your degrees of freedom values at vertices that move (not
fixed points in space). So it looks to me you have already done what
you need.

--
Anders

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