Fluids

Fluids

Fluent DPM Unsteady Injection File: how does “Repeat Interval in File” work?

    • LLhtc
      Subscriber

      Hello everybody

      I am simulating a very simple case to verify the unsteady injection file characteristics (later to be applied to a more complex scenario). This test case consists of a number of hexa elements placed in series along the main axis, where the eulerian phase equation are disabled and only the lagrangian phase is solved. The inlet and the outlet sections of the domain are treated as periodicity, the lateral sides as simmetry. At a certain time, I am injecting a particle parcel in the domain, with an assigned velocity, diameter, parcel-mass, etc., where the only velocity component that is assigned is the one along the main axis (other are set to 0). Considering all this settings, parcels are injected in the domain and therefore remain there (they cannot escape, being trapped, evaporate...). The simulation is transient, with a dt=1e-4s and flow is inviscid.

      I am using this very simple unsteady injection file:

      (z=4 13)

      (x y z u v w diameter t parcel-mass mass n-in-parcel time flow-time)

      ((0.0 0.00000000 5.5e-02 0.0 0.0 1 3.73e-05 400.0 1e-11 2.12406e-11 0.56349 0.0000e+00 2.0000e-04) injection-0:0)

      At this point, if I am using the "Repeat Interval in File" in the injection panel set to 0, the injection works fine: the parcel is injected at flow-time=0.0002 s, that is the prescribed time. Then I impose "Repeat Interval in File=10e-04s" and if I am not wrong I should expect that the injection file is re-winded once the periodic window (defined by the repeat interval time) is reached. For this unsteady file injection and this specif interval I should expect that considering a total simulation windows of 20e-4 s means two parcels in the domain (injected at 2e-04s and 12e-4s): instead three parcels are tracked...

      Of course I cleared the previous parcels before the test, as well I set to 0 the flow-time.

      I report also the "unexpected injection" according to the console:

      [...

      Updating solution at time level N...

      done.

      Advancing DPM injections ....

      number tracked = 1, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0

      iter time/iter

      Flow time = 0.0011s, time step = 11

      9 more time steps

      Updating solution at time level N...

      done.

      Injecting 1 particle parcels with mass 1e-11 at t = 0.0011

      Advancing DPM injections ....

      number tracked = 2, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0

      iter time/iter

      Flow time = 0.0012s, time step = 12

      8 more time steps

      Updating solution at time level N...

      done.

      Injecting 1 particle parcels with mass 1e-11 at t = 0.0012

      Advancing DPM injections ....

      number tracked = 3, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0

      iter time/iter

      Flow time = 0.0013s, time step = 13

      ..]

      As you can see, the test case is really fundamental and I think I am doing a very dumb error, but I cannot see where it is.

      Thanks in advance for any help!

    • DrAmine
      Ansys Employee
      On a dummy example does it work for me. Verify your start/stop times in the panel. Also verify the time step size used to advance the particle(s).
      In my example Particle is first introduced at 0.0, my time step size is 0.001[s] and the repeat interval is set to 0.005 [s], every 0.005[s] I get the one particle injected. So my second is injected at the beginning of the 6th time step and so on..
    • LLhtc
      Subscriber
      @DrAmine thank you so much for your reply!
      I have tried your setup: actually it works fine, as you said!
      Anyway, I used your setup while changing the injection time to 0.003[s]. It should work in the same manner, but simply with a temporal shift, am I right? instead I get the same problem
      See the console log for instace (in bold the issue that I am seeing):
      [...
      Updating solution at time level N...
      done.
      Advancing DPM injections ....
      number tracked = 0, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.001s, time step = 1
      9 more time steps
      Updating solution at time level N...
      done.
      Advancing DPM injections ....
      number tracked = 0, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.002s, time step = 2
      8 more time steps
      Updating solution at time level N...
      done.
      Injecting 1 particle parcels with mass 1e-11 at t = 0.002
      Advancing DPM injections ....
      number tracked = 1, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.003s, time step = 3
      7 more time steps
      Updating solution at time level N...
      done.
      Injecting 1 particle parcels with mass 1e-11 at t = 0.003
      Advancing DPM injections ....
      number tracked = 2, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.004s, time step = 4
      6 more time steps
      Updating solution at time level N...
      done.
      Advancing DPM injections ....
      number tracked = 2, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.005s, time step = 5
      5 more time steps
      Updating solution at time level N...
      done.
      Advancing DPM injections ....
      number tracked = 2, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.006s, time step = 6
      4 more time steps
      Updating solution at time level N...
      done.
      Advancing DPM injections ....
      number tracked = 2, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.007s, time step = 7
      3 more time steps
      Updating solution at time level N...
      done.
      Injecting 1 particle parcels with mass 1e-11 at t = 0.007
      Advancing DPM injections ....
      number tracked = 3, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.008s, time step = 8
      2 more time steps
      Updating solution at time level N...
      done.
      Injecting 1 particle parcels with mass 1e-11 at t = 0.008
      Advancing DPM injections ....
      number tracked = 4, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.009000000000000001s, time step = 9
      1 more time step
      Updating solution at time level N...
      done.
      Advancing DPM injections ....
      number tracked = 4, escaped = 0, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0, incomplete_parallel = 0
      iter time/iter
      Flow time = 0.01s, time step = 10
      Calculation complete.
      ...]
      As unsteady tracking parameter I am using "Track with fluid time step", so it should be the same used to advance the flow-time. Also (see again the bold part in the log),there is a thing that is puzzling me: is the injection occurring at the beginning of the related time step? Why is reported "Injecting 1 particle parcels with mass 1e-11 at t = 0.002" if I have set 3e-3[s] as flow-time for the injection?
      I put also some snapshot, I thought maybe could be useful to understand where I am doing wrong.
      Thanks again for you help!

    • DrAmine
      Ansys Employee
      Which time are you talking about? The time in the injection header and injection file? I still get the same behavior if I increase that time column to anything and this is expected. I am using 21R1. You can use the option STart fol-time in File" to start injection after certain time elapsed: the last column in the injection file will then be used.
    • LLhtc
      Subscriber
      Yes, I am talking about the "flow-time" column (the 13th column , as reported in the user guide). Up to now, that is the test that I reported before, I was using the 2019R1 release. I have now used also the 2019R3 and 2021R1 releases: actually it seems to work, but it is skipping the first interval (from flow-time 0 to flow-time 5e-03[s]). Also, the injection time, that should be at flow-time= 3e-3[s] (and all the other time-steps according to the 5e-03s repetition interval, so 8e-03[s],13e-03[s],18e-03[s],etc.), sometime occurs in the next time-step:
      [...
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 0
      itertime/iter
      Flow time = 0.001000000047497451s, time step = 1
      19 more time steps
      Updating solution at time level N...
      done.
      itertime/iter
      Flow time = 0.002000000094994903s, time step = 2
      18 more time steps
      Updating solution at time level N...
      done.
      itertime/iter
      Flow time = 0.003000000026077032s, time step = 3
      17 more time steps
      Updating solution at time level N...
      done.
      itertime/iter
      Flow time = 0.004000000189989805s, time step = 4
      16 more time steps
      Updating solution at time level N...
      done.
      itertime/iter
      Flow time = 0.005000000353902578s, time step = 5
      15 more time steps
      Updating solution at time level N...
      done.
      itertime/iter
      Flow time = 0.006000000052154064s, time step = 6
      14 more time steps
      Updating solution at time level N...
      done.
      itertime/iter
      Flow time = 0.007000000216066837s, time step = 7
      13 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      Injecting 1 particle parcels with mass 1e-11 at t = 0.007
      number tracked = 1
      itertime/iter
      Flow time = 0.00800000037997961s, time step = 8
      12 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 1
      itertime/iter
      Flow time = 0.009000000543892384s, time step = 9
      11 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 1
      itertime/iter
      Flow time = 0.01000000070780516s, time step = 10
      10 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 1
      itertime/iter
      Flow time = 0.01100000087171793s, time step = 11
      9 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 1
      itertime/iter
      Flow time = 0.01200000010430813s, time step = 12
      8 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 1
      itertime/iter
      Flow time = 0.0130000002682209s, time step = 13
      7 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      Injecting 1 particle parcels with mass 1e-11 at t = 0.013
      number tracked = 2
      itertime/iter
      Flow time = 0.01400000043213367s, time step = 14
      6 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 2
      itertime/iter
      Flow time = 0.01500000059604645s, time step = 15
      5 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 2
      itertime/iter
      Flow time = 0.01600000075995922s, time step = 16
      4 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 2
      itertime/iter
      Flow time = 0.01700000092387199s, time step = 17
      3 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      Injecting 1 particle parcels with mass 1e-11 at t = 0.017
      number tracked = 3
      itertime/iter
      Flow time = 0.01800000108778477s, time step = 18
      2 more time steps
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 3
      itertime/iter
      Flow time = 0.01900000125169754s, time step = 19
      1 more time step
      Advancing DPM injections ....
      Updating solution at time level N...
      done.
      number tracked = 3
      itertime/iter
      Flow time = 0.02000000141561031s, time step = 20
      Calculation complete.
      ...]
      Note1: when the original cas is read in the new releases, the time step is no more a round number, 1e-3s, but it gains that additional decimals....I am assuming that it does not affect the computation
      Note 2: the injection file is now (just to be sure I am not messing up here somewhere):
      (z=4 13)
      (x y z u v w diameter t parcel-mass mass n-in-parcel time flow-time)
      ((0.0 0.00000000 5.5e-02 0.0 0.0 1 3.73e-05 400.0 1e-11 2.12406e-11 0.56349 0.0000e+00 3.0000e-03) injection-0:0)

      Instead, I missed what you said about "You can use the option STart fol-time in File" to start injection after certain time elapsed: the last column in the injection file will then be used".
      Do you mean the "Start flow-time in file [s]" options in the "point properties" dialog box? if I do not use this option "the last column in the injection file" is not used?
      thanks for your help

    • DrAmine
      Ansys Employee
      The particles and flow will always have the same time so it injects on top of the new time step so that at its ends particle and flow have same time elapsed. I need to think more about the first injection time and I will comment once I can have time.
      If you use unsteady file injection you can tell Fluent to start injecting from the column 13. I will recommend first testing with that file injection but adding some lines for other time events instead of repeat interval.
    • LLhtc
      Subscriber
      again, many thanks for your help, I am looking forward for your answer about the first injection time.
      In the meanwhile, I am following you suggestion about avoiding the repeat interval with a longer unsteady injection file: it seems working fine.
      Thanks again!
    • DrAmine
      Ansys Employee
      I need to repeat it: The particles and flow will always have the same time so it injects on top of the new time step so that at its ends particle and flow have same time elapsed. Imagine you start from zero the flow time is zero at the first flow time step Fluent will solve for the first time interval for that reason you will particles injected at time 0 [s] as at the end of that time step it has the time 0.001[s].

      So this guy: ((0.0 0.0 0.0 0.0 1.0 0.0 0.0001 400.0 1e-11 2.12406e-11 0.56349 0.0 0.0) injection-0:0) with a repeat interval of 0.005

      Will inject at 0.0, 0.005, 0.0010. You might notice that i might inject at 0.009 but is due to the fact that the flow time is not 100% equal to 0..09. Particle tracker will rectify that and track the particle again from a fraction of millisecond so that if you look into the particle residence time after 0.010 second you will see consistent behavior.

      Again for the particle tracker the time interval / period is important





Viewing 7 reply threads
  • You must be logged in to reply to this topic.