← 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: Answered => Open

Patrick Riesen is still having a problem:
Anders Logg wrote:
> 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.

ok, i supposed it was nevertheless necessary, but i wasn't 100% sure.
anders, thank you for the very quick answers,

best regards,
patrick

  > --
> Anders
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help   : https://help.launchpad.net/ListHelp

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



References