User Forum of Software BASEMENT

BASEMENT
Basic Simulation Environment for computation of environmental flow and natural hazard simulation
Laboratory of Hydraulics, Hydrology and Glaciology (VAW)
ETH Zurich
Basement_Logo

You are not logged in.

#1 2019-12-13 14:50:01

sua87
User
From: Bern
Registered: 2017-05-26
Posts: 21

Nodestring Limitation

I've been having problems setting up a simulation for BMv3. The following error was displayed:

-> out of range (40>=40), in file: /home/BMv3/src/setup/Substance.cpp on line 188

According to the message window it was thrown when analysing the string defs. So I went through my mesh and my string def in order to find the problem. The directions were set fine, the strings were correctly implemented in the model.json file. After a while I found out that it had to do with my outflow sting, it contained 66 nodes. I've split it up in parts so that no more than 40 nodes were in one string. This solved the problem.

I have two questions about this:

  1. Would it be possible to improve the error messages, so that there are better hints where to look for a specific problem? Unfortunately the BMv3 manual doesn't state anything about this limitation either.

  2. Are there any plans about increasing the maximum number of nodes per nodestring? Since often large meshes are processed in BMv3, it would be really handy.

Thanks.

Offline

#2 2020-01-06 09:43:20

Matthias Bürgler
Developer
From: Zürich
Registered: 2019-04-04
Posts: 150

Re: Nodestring Limitation

Hi

Thank you for pointing this out. The limitation of 40 edges was set for performance reasons. We will definitely mention the edge limitation in the manual of the next release and we will also discuss increasing the maximum number of edges per nodestring.

Best regards
Matthias

Offline

#3 2020-05-27 10:35:50

carygrant
User
Registered: 2020-02-05
Posts: 7

Re: Nodestring Limitation

Could you guys elaborate on the recommendation from the v3 manual:
"the number of nodes per nodestring is limited to 40, i.e. larger nodestrings must be split up"

We don't understand how exactly should the nodestrings be split up. What shall be split exactly and how?

We tried making more than one breakline marked for example as "inflow", but during mesh generation, only one of these end up in the 2dm file. Or should we manually split the lines in the 2dm file if more than 40 nodes would go into one line?

Offline

#4 2020-05-27 11:03:08

Matthias Bürgler
Developer
From: Zürich
Registered: 2019-04-04
Posts: 150

Re: Nodestring Limitation

Hi

The nodestrings in the 2dm File must be split up. Example: A Nodestring "inflow" consisting of 110 nodes  should be split up in 3 separate Nodestrings, each with less than 40 Nodes (inflow1, inflow2, inflow3). In the model.json, each nodestring must be defined seperately again. Also boundary conditions must be defined separately on each nodestring.

One option is to already split the nodestring by using three different breaklines during the mesh generation. Im not sure why this did not work in your case. Make sure to use different names for each nodestring.

The other option is to split the nodestrings directly in the 2dm file. In this case it is important to add the last Node ID of lets say nodestring "inflow1" as the first node on the subsequent nodestring "inflow2" to avoid missing edges.

Note: We are planning on increasing the limit in the next release (date is still open).

Best regards
Matthias

Offline

#5 2020-05-27 11:46:40

carygrant
User
Registered: 2020-02-05
Posts: 7

Re: Nodestring Limitation

Thanks Matthias for the quick reply, it helped us.

We figure that the reason for the error when using split polylines already for mesh generation was because we used the same string names for the separate polylines: we created different polylines with the same values in their "stringdef" attributes (like two lines were called "outflow", etc..). Only one of these ended up in the 2dm file, but we understand now why.

Offline

Board footer

Powered by FluxBB