Welcome, Guest
Username: Password: Remember me

TOPIC: C-VSM depth synchro error

C-VSM depth synchro error 1 year 6 months ago #42597

  • Renault
  • Renault's Avatar
  • NOW ONLINE
  • Senior Boarder
  • Posts: 120
  • Thank you received: 33
Hi all,

I decided to try using C-VSM instead of HR-VSM for my model (bedload only, 10 classes of sediment, 5 layers below the active layer), but I must admit I don't really know what I'm doing. So far, the only thing I've done is activate C-VSM using the VERTICAL GRAIN SORTING MODEL = 1 keyword, without setting anything else in the cas file.

The problem I have appears to be twofold for now. Firstly, there is a "Depth Synchro Error" that appears for some points (but not all) and as I write this, I think I'm figuring out what's going on. Essentially, I have some areas in my model where I'm using USER_BED_INIT to change active layer and/or subsequent layer depth to 0. m to make them non-erodible. It would therefore seem that C-VSM expects the bottom of the model at these points to be 0.15 m to 0.18 lower (in my case) than it actually is, based on data obtained before USER_BED_INIT has run. Therefore, these lines appear (printed by lines 139-142 of CVSP_INIT_GAIA):
Depth Synchro Error for Point J:          545
   219.096367961743        218.946367961743       0.120000000000000
  3.000000000000114E-002
 Depth Synchro Error for Point J:          546
   219.098026275772        218.948026275772       0.120000000000000
  3.000000000000114E-002
There is a consistent difference of 0.15 m (or 0.12+0.03) between the two points.
Note that this is only a small sample of what is printed out. The other possibility is that the model is going through points from 1 to whatever (546 in this case), and finding a Δz of 0.15 m (which corresponds to 5 layers X 0.03 m per layer below the active layer) between the bottom of the active layer and the bottom of the model.

Secondly, once these points have been printed out, the code from CVSP_CHECK_ANYTHING_GAIA runs and this is printed:
----------------------------------------------
 CVSP Checking Anything.... EXPENSIVE DEBUGGING
 ---------------------------------------------

READ_MESH_INFO: TITLE= Ph0_063mm
            NUMBER OF ELEMENTS:     1000
            NUMBER OF POINTS:      546

            TYPE OF ELEMENT: TRIANGLE
            TYPE OF BND ELEMENT: POINT

            DOUBLE PRECISION FORMAT (R8)

 MXPTEL (BIEF) : MAXIMUM NUMBER OF ELEMENTS AROUND A POINT:   8
                 MAXIMUM NUMBER OF POINTS AROUND A POINT:   9
 (GLOBAL MESH)
 SEGBOR (BIEF) : NUMBER OF BOUNDARY SEGMENTS =     90
 INCLUDING THOSE DUE TO DOMAIN DECOMPOSITION
slurmstepd: error: Detected 3 oom-kill event(s) in StepId=16758029.0. Some of your processes may have been killed by the cgroup out-of-memory handler.
While "expensive debugging" made me laugh, this made my model run out of memory on the cluster I'm using, so that made me not laugh… I'm not sure what's going on here.

Essentially, I believe my problem boils down to the use of USER_BED_INIT to change layer depths after C-VSM first reads them in, but before C-VSM actually runs, hence its confusion. However, I really don't know, and it could well be that 1) I'm missing other parameters for C-VSM or 2) C-VSM is not adapted to what I am doing. I don't need to see stratification, I just want the computed values to be a little more accurate if possible.

Thanks for any feedback you might have,
André Renault
The administrator has disabled public write access.

C-VSM depth synchro error 1 year 3 months ago #43050

  • Renault
  • Renault's Avatar
  • NOW ONLINE
  • Senior Boarder
  • Posts: 120
  • Thank you received: 33
Hi again,

I've looked into this a bit more, with some different values. Now, the synchro error looks like this (trimming out double precision mess):
BOTTOM         NOEROD        DEPTH       BOTTOM-NOEROD-DEPTH
208.456        207.896       0.112       0.448

These values look a lot more familiar to me now. My model nominally has 2 layers, the first being 0.112 m and the second being 0.448 m. It seems that a layer is being skipped... This is what I observe at lines 101-102 of CVSP_INIT_GAIA:
DO M=1,NLAYER%I(J) - 1                                                  
          DEPTH = DEPTH + ES(J,M)
In other words, the code is adding up all the layers except for the last one. This appears to be necessary for setting PRO_D and PRO_F in the same "BUILDING SECTIONS" loop, but it leaves a fairly egregious error at the end.
So, I added an extra line of code immediately after the end of the loop:
DEPTH = DEPTH + ES(J,NLAYER%I(J))
It seems to properly account for the final layer now. Unfortunately, the model is still crashing, and I'm not sure why, although the debugger seems to indicate that it crashes on calling CVSP_MAIN_GAIA, so that's another fight...

I hope this is helpful. I'll submit a ticket on gitlab :woohoo:
André
The administrator has disabled public write access.

C-VSM depth synchro error 1 year 3 months ago #43055

  • kopmann
  • kopmann's Avatar
  • OFFLINE
  • Senior Boarder
  • Posts: 106
  • Thank you received: 65
Hi André,

I have read this and the other c-vsm topic from you. You are right, c-vsm is not as stable than HR-VSM. Nevertheless it should work at least more than 3 time steps. Would it be possible for you to send me your case that I can have a look at it? I guess this would be much faster. May be it is easier to exchange the files via email (This email address is being protected from spambots. You need JavaScript enabled to view it.).

Best regards,
Rebekka
The administrator has disabled public write access.
The following user(s) said Thank You: Renault
Moderators: Pablo, pavans

The open TELEMAC-MASCARET template for Joomla!2.5, the HTML 4 version.