Welcome, Guest
Username: Password: Remember me

TOPIC: Sediment recirculation

Sediment recirculation 11 years 9 months ago #7075

  • clebouteiller
  • clebouteiller's Avatar
Hello,

I am trying to model a flume test case where both water and sediment (bedload) are recirculated. Which means that I need to impose solid discharge values at the upstream boundary that are equal to the solid discharge at the downstream boundary.

Has anyone already implemented something like that? I guess I will have to use the conlit.f function to impose the upstream sediment flux, but I am not sure whether I can easily access the downstream flux values at that point or if I have to store them somewhere from one time-step to the next.

Any experience to share on the topic would be greatly appreciated!
Thanks

Caroline
The administrator has disabled public write access.

Sediment recirculation 11 years 9 months ago #7339

  • clebouteiller
  • clebouteiller's Avatar
Hello

Here is a reply to my own question in case anyone is in need for similar information:

In the conlit subroutine, I have added a few lines that sum up the sediment flux on all boundary nodes belonging to the downstream boundary, then convert it into a flux in m2/s that I called QOUT
Then in the call for disimp, I replace SOLDIS(IFRLIQ) by this QOUT value.
So far it has been working.

Caroline
The administrator has disabled public write access.

Sediment recirculation 11 years 9 months ago #7341

  • Pablo
  • Pablo's Avatar
  • OFFLINE
  • Moderator
  • Posts: 316
  • Thank you received: 121
Hi Caroline,
thanks a lot for sharing this useful information.
Probably your application could be included as a new test case/example for the next release of the Telemac System (with your credits, of course) ? If it is OK for you, could you please contact me to This email address is being protected from spambots. You need JavaScript enabled to view it. ?

Many thanks,

Pablo
The administrator has disabled public write access.

Sediment recirculation 11 years 9 months ago #7391

  • amendozar001
  • amendozar001's Avatar
Hello, are you able to run your modification in parallel?

I'm facing this same problem of periodic boundary for sediment transport, and I'm solving it in a similar way as you did, however I have not been able to run it in parallel since it seems the block at the inlet does not have access to the nodes in the block at the outlet, so it is not possible to get the "QOUT" communicated to the inlet.

Thanks
Alejandro Mendoza
The administrator has disabled public write access.

Sediment recirculation 11 years 9 months ago #7398

  • jmhervouet
  • jmhervouet's Avatar
Hello,

A solution is to define a variable QOUT, the processor which has the real QOUT gives its value, the others set it to 0, they all processors do :

IF(NCSIZE.GT.1) QOUT=P_DMAX(QOUT)

You possibly will have to declare:

DOUBLE PRECISION P_DMAX
EXTERNAL P_DMAX


If QOUT may be >0 or <0

the formula QOUT=P_DMAX(QOUT)+P_DMIN(QOUT) will do the job.

However I do not know how you compute QOUT, if it is a summ of contributions of points, you may simply have to sum all the QOUT of different processors (those with no contributing points giving 0.D0), the sum is QOUT=P_DSUM(QOUT).

With best regards,

Jean-Michel Hervouet
The administrator has disabled public write access.

Sediment recirculation 11 years 9 months ago #7509

  • amendozar001
  • amendozar001's Avatar
Hello,

Now I'm trying to implement your idea but it is not as easy as I had figured out. are P_DMAX and P_DMIN arrays with the same size as the number of processors? Now I figure out that P_DMAX may be a function that gets QOUT from all processors, is that correct?

best regards,
Alejandro Mendoza
The administrator has disabled public write access.

Sediment recirculation 11 years 9 months ago #7510

  • clebouteiller
  • clebouteiller's Avatar
Hello,

In case this can help, here is the modified conlit subroutine I have been using as a fortran file to get the sediment recirculation in my flume model. This is very basic but it seems to work.

I have no experience at all in running Telemac/Sisyphe in parallel so I can not help on this topic. Good luck!

Caroline
Attachments:
The administrator has disabled public write access.

Sediment recirculation 11 years 9 months ago #7511

  • amendozar001
  • amendozar001's Avatar
Thank you, very helpful because I had the modification for version 6.1, I hope to have the modification for parallel processing at some point, I let you know.

Regards,
Alejandro Mendoza
The administrator has disabled public write access.

Sediment recirculation 11 years 8 months ago #7872

  • amendozar001
  • amendozar001's Avatar
Hello Caroline,

I was gettting different values of bedload at the inlet when compared with values at the outlet, it seems that you should use index I instead of K in your code:

!
! FOR RECIRCULATION (CLB 01/2013)
! MEASURES THE TOTAL FLUX AT THE OUTLET
! COUNTS THE NUMBER OF POINTS AT THE OUTLET BOUNDARY
IF(LIQBOR%I(K).EQ.KSORT) THEN
J=J+1
! QOUT=QOUT+QS_C%R(K)
!!!! I instead of K, AMR 20130308
QOUT=QOUT+QS_C%R(I)
ENDIF
!

with this modification I get the bedload at the inlet equal to the average at the outlet of the previous step.

Alejandro
The administrator has disabled public write access.

Sediment recirculation 11 years 8 months ago #7914

  • clebouteiller
  • clebouteiller's Avatar
Thanks a lot Alejandro!
The administrator has disabled public write access.
Moderators: Pablo, pavans

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