Distance over surface/boundary

Numerical methods and mathematical models of Elmer
Post Reply
joeatodd
Posts: 36
Joined: 02 Feb 2012, 18:49
Antispam: Yes

Distance over surface/boundary

Post by joeatodd »

Hi there,

I was wondering if anyone knows of (or has personally developed) a function to compute distance between two points *along* a surface. In other words, not the geometric distance but the 'walking distance' along the surface, so to speak.

I'm planning to write something myself, but wanted to check first that my time wouldn't be wasted on something which is already possible!

Thanks,

Joe
mzenker
Posts: 1999
Joined: 07 Dec 2009, 11:49
Location: Germany

Re: Distance over surface/boundary

Post by mzenker »

Hi,

I don't know of such a function, and I guess that it would not be straightforward to implement within Elmer. I might be wrong, however.
You might have a look on ParaView which is a VTK-based postprocessor including all kinds of filters and the possibility to add custom filters programmed in python. I don't know if there is already an appropriate filter, but you can ask on the ParaView mailing list if such a filter exist and if they can help you to create one if not.

HTH,

Matthias
raback
Site Admin
Posts: 4832
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Distance over surface/boundary

Post by raback »

Hi Joe

There is something in that spirit in the ParticleAdvector routine. It uses particles to convect stuff in a semi-lagrangian fashion. One thing that can be advected is "distance". This does not work perhaps that well on surface/boundary as the intended use is the for the full dimension.

Generally this is probably quite a difficult problem. Do you have any vector field to follow or should the definition of the shortest path be part of the solution?

-Peter
joeatodd
Posts: 36
Joined: 02 Feb 2012, 18:49
Antispam: Yes

Re: Distance over surface/boundary

Post by joeatodd »

raback wrote:Hi Joe

There is something in that spirit in the ParticleAdvector routine. It uses particles to convect stuff in a semi-lagrangian fashion. One thing that can be advected is "distance". This does not work perhaps that well on surface/boundary as the intended use is the for the full dimension.

Generally this is probably quite a difficult problem. Do you have any vector field to follow or should the definition of the shortest path be part of the solution?

-Peter
Good question, Peter. In fact, I think the problem is slightly easier than I described it. Basically, I want to find the horizontal and vertical distance from a given point to the edges of the boundary, but along the surface.

The surface in question is a calving face in a 3D model, and the purpose is to maintain mesh quality when the geometry of the face changes. If you imagine a calving face which simply undergoes a translation forwards or backwards, then the mesh update would be trivial. However, if a protruding section of the boundary were to calve, resulting in a geometry change, then the question of where to put the nodes is not as simple.

If you have a suggestion for a more elegant approach to this problem, I'd love to hear it!

Thanks,

Joe
raback
Site Admin
Posts: 4832
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Distance over surface/boundary

Post by raback »

Hi Joe

I know there is a FlowDepthSolver that computes distance from bottom line/surface along distance from a degenerated Poisson equation. Could perhaps this strategy be used also for the lateral direction?

-Peter
joeatodd
Posts: 36
Joined: 02 Feb 2012, 18:49
Antispam: Yes

Re: Distance over surface/boundary

Post by joeatodd »

Hi Peter,

Yeah, I'd thought about this. Unfortunately, I don't think the FlowDepthSolver has any routines for calculating distance along a surface. I think my problem is best illustrated with a diagram.

http://dl.dropbox.com/u/9058612/NodeRemapping.png

In this example, the original geometry (simplified to 2D view from above) is altered by a (very unrealistic!) rapid advance of only a small section of the terminus. The simple method of updating the mesh would be just to translate the nodes, normal to the overall surface (or line, in this case). However, it would be better if the nodes remained evenly distributed along the line/surface. So, for this reason, I want to measure the relative distance of the nodes along the line, rather than a simple point to point distance. Of course, this is fairly trivial in the reduced dimension example I've uploaded, but it becomes a bit of a headache in 3D...

Joe
Post Reply