← Back to team overview

yade-users team mailing list archive

Re: [Question #660585]: Why avoid reseting particle positions in DFNFlow?

 

Question #660585 on Yade changed:
https://answers.launchpad.net/yade/+question/660585

    Status: Open => Answered

Bruno Chareyre proposed the following answer:
Hi Robert,
I think you are right on the problem, sorry for not realizing earlier. updatePositions=false really leads to a one way coupling.
It is very unexpected, since I think the DFN engine had been validated in primary consolidation at some point. Maybe at that time the volume computation was still using bodies[k].pos instead of buffer[k], that would explain. Or maybe it was tested with updatePositions=true. 

>the remesh interval needs to be much smaller than if we do not update
the particle positions

Why does it need to be smaller?

I think the best fix would be to update positions always and re-
triangulate never (given that updating "always" while re-triangulating
"sometimes" is already possible with updatePositions=true). That was the
original intention to make it possible and it should not be difficult to
achieve. As you suggested the "updatePosition" condition should apply
for retriangulation, not for updating volumes. This way we would use
fresh positions to calculate updated volumes of tetrahedra - regardless
of whether those fresh positions would lead to the same set of
tetrahedra in a new triangulation.

There is in fact no need to change the code to achieve "update positions
always and re-triangulate never". It should be enough to set
defTolerance<0, meshUpdateInterval=1e20 (*), updatePositions=True. Or
does it give problems?

The other question on maintaining a consistent fracture pattern after
re-triangulating is less clear to me. I'm not sure how it would look to
have a facet "intersecting" a cracked edge without having it as one of
its edges. If there is a solution to this it is probably a bit more
involved, and probably not necessary in most cases.

Last but important note, see
https://bugs.launchpad.net/yade/+bug/1734653 for another (and only)
known bug besides what we are discussing here.

Cheers

Bruno

(*) For the sake of homogeneity I'll make meshUpdateInterval<0 discard
the condition as it does for defTolerance.

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.