Is the Level-set method applicable to the real terrain described by the gridded digital elevation model?

Asked by gjb123

I am a newcomer and want to ask whether the Level-set method is applicable to the real terrain described by the gridded DEM? If possible, I would be grateful if you could give me some advice or suggestions on how to use the Level-set method to construct real terrain, or give me a simple example.

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hello,

> I am a newcomer

welcome :-)

Please provide more information [1]:
- what is the purpose of "real terrain"
- what you want to simulate in general
- why do you want to use level set
- ...

For "the real terrain described by the gridded DEM" I would simply use facets as the first approach [2,3,4]

disclaimer: I have zero knowledge of level set in Yade, so my point of view is biased.

Cheers
Jan

[1] https://www.yade-dem.org/wiki/Howtoask
[2] https://yade-dem.org/doc/user.html#boundary-representation-brep
[3] https://gitlab.com/yade-dev/trunk/-/tree/master/examples/gts-horse
[4] https://gitlab.com/yade-dev/trunk/-/blob/master/examples/funnel.py

Revision history for this message
gjb123 (gjb123) said :
#2

Hello,
Jan

 > what is the purpose of "real terrain"

The Digital Elevation Model (DEM) is a type of terrain data that I obtain from publicly available data sources, such as elevation, slope, aspect, and terrain features

- what you want to simulate in general
- why do you want to use level set

I want to simulate the collision between particles constructed by Level set function and real terrain, but the existing contact with particles constructed by Level set function includes "Ig2_Box_LevelSet_ScGeom" or "Ig2_Wall_LevelSet_ScGeom", but the shape of box or wall is difficult to be as complex as real terrain, so I want to construct real terrain through Level set function, which conforms to "Ig2_LevelSet_LevelSet_ScGeom".

In addition, this is a very simple small terrain I made through Rhino. I want to know whether it can be expressed through the Level set function, or how I should express it.

https://pan.baidu.com/s/1f7B6qgKqVKK8B1-tYaW0-Q?pwd=E526

Finally, I would like to express my deep gratitude :-)

Revision history for this message
Jérôme Duriez (jduriez) said :
#4

Hi,

The most straightforward way would probably be to define your "terrain" with Facet-shaped YADE bodies and count on a Ig2_Facet_LevelSet_ScGeom. Unfortunately, the latter does not exist at the moment...

As an alternative, maybe you could try to define a single LevelSet-shaped body for your terrain (adding planar sides underneath your physical ground slope ? to make it closed).

As a keypoint, you have here to come with your own assignment of LevelSet.lsGrid (grid attribute of levelSetBody() ) and LevelSet.distField (distField attribute of levelSetBody() ).

See https://gitlab.com/yade-dev/trunk/-/blob/0017336215cd3f47d588a43a992d58f87fe8a649/examples/levelSet/levelSetBody.py#L32 for an example of that usage.

That might be less efficient to run than using this non-existing-yet Ig2_Facet_LevelSet_ScGeom (exaggerated memory requirement with many useless distance data below your ground surface of that LevelSet body ?) but no C++ coding required..

For computing the actual distance data (on the grid) which is required to correspond to your terrain with that approach, you're on your own but there is probably a number of tools already available on the web ? (keywords: distance to a .stl mesh ?)

Can you help with this problem?

Provide an answer of your own, or ask gjb123 for more information if necessary.

To post a message you must log in.