TAGGED: dpm
-
-
February 24, 2022 at 10:17 amSumit_KumarSubscriber
Hi all,
I had a query while doing a DPM simulation. Basically, I am trying to inject two types of particles from the inlet of a pipe. The properties I wanted to use were (Particle 1: Diameter 1mm, Quantity-10000, Particle 2: Diameter 2 mm, Quantity-5000). Is there a way that I can get a result with both of them injected at the same time? If yes, please do elaborate a bit on the procedure.
I am trying to attempt this with dense discrete particle modelling and as eulerian. If this assumption is incorrect, do let me know so I can fix it as well.
February 24, 2022 at 3:15 pmRobForum ModeratorYou'll need two injections. However, you're confusing particles and parcels. For a surface injection we inject one parcel (stream) from each facet centre. If you leave all the "scale by area" and parcel settings as default each parcel for each injection will contain an equal fraction of the injected mass.
Now, the next bit. If the system is dilute, ie volume fraction is under about 12% DPM model is fine. Above that and DDPM or Eulerian is needed. The latter two invariably result in a transient solution so you need to decide ahead of running the model.
February 24, 2022 at 3:21 pmSumit_KumarSubscriberHi Rob,
Thanks for the answer.
I understood the second part. But in the first part, say I want to fix how many particles I want to inject, how to you think I should do that? I feel that once the number of particles are set, each parcel would have a symmetric amount of particles injected
February 24, 2022 at 3:47 pmAmine Ben Hadj AliAnsys EmployeeSteady state we talk about streams of particles. The number of streams at a surface will correspond to number of faces unless you allow fir random seeds and here you can tell how many streams you want to inject.
Unsteady ymsimilar thought but now we have particle parcels and here you can tell to inject over certain duration plus number of seeds.
March 5, 2022 at 9:13 pmShyam Prasad V AtriSubscriberI want to define a particle property that is not there in this list
and i want to use that new particle property say (property1) in DEFINE_DPM_SCALAR_UPDATE user-defined function.
Please let me know how to go about this?
Can I use anyone property in the above list (The property that will not affect eh physics of my simulation) as a placeholder for the property1 that I am defining and use that placeholder value in my DEFINE_DPM_SCALAR_UPDATE?
say the value (specific heat/latent heat) will not affect the physics of my simulation can I put the property1 value in place of specific heat and then use that specific heat in my DEFINE_DPM_SCALAR_UPDATE.
I am using Viscus RNG k-e and discrete phase method as models in the simulation
Please let me know if ansys allows us to do so?
March 6, 2022 at 9:33 pmShyam Prasad V AtriSubscriberAlso In case, i define this property using the procedure mentioned above can I vary this property1 for all the particles that i will inject? say i will inject 100 particles and I want o give a property1 value of 101.5 to first particle, the property1 value of 112.5 for the second particle and property value of 103.7 for the third particle... can i achieve this with DPM_DEFINE_PROPERTY UDF?
March 7, 2022 at 10:56 amAmine Ben Hadj AliAnsys EmployeeWhich property do you want to change?
March 7, 2022 at 10:57 amAmine Ben Hadj AliAnsys EmployeeYes you can vary the property based on the injection ID or Material of particles: check if they are coming from same injection and have same density or not.
March 7, 2022 at 2:30 pmShyam Prasad V AtriSubscriberI want to assign charge to a particle using the latent heat/ specific heat property as a place holder. because charge is not part of material property in DEFINE_DPM_PROPERTY list.
Something like this
I want to vary this charge in same injection.
I have an Injection ID of 1 where i am injecting 100 particles. I want to assign different charges to every single particle.
My initial thought was to define this as a scalar. But i cannot assign more than 50 scalars in fluent
so I thought at least if I can use any predefined property as a placeholder i can reassign that property every time my particle ID changes.
Please let me know if this is possible to achieve?
March 7, 2022 at 2:39 pmShyam Prasad V AtriSubscriberAnd as far as hooking up DEFINE_DPM_PROPERTY goes ansys fluent is not allowing me to link this UDF that i created to the particle at all. I am able to compile this UDF and I have put it in the same folder as my case file.
But even though i click on Change/Create as given in the documentation nothing happens
I don't see udf in the drop-down list at all. Am I missing any step?(I am following the documentation as given below)
March 7, 2022 at 2:44 pmMarch 7, 2022 at 2:54 pmRobForum ModeratorLooking at the panels you're trying to alter the database entry, and not the material property. The second image is the particle material property, and cp will only be visible when you turn on the energy equation. Messing with the thermal properties may not end well, as these will effect how the energy equation works, and is likely to cause interesting side effects.
Do you really want each parcel to have a different charge? A scalar will track a charge value on the parcels so I'm not sure why you'd need more than 50 scalars.
March 7, 2022 at 3:03 pmShyam Prasad V AtriSubscriberI see. If I will encounter side effects then I will try to avoid them. But how would I go about with scalars?
It's not necessary that I need to have more than 50 scalars. I would be happy if I could assign 10 different charges. (But it is necessary that i assign different charges in the same injection)
For example, I have 100 parcels
parcels with ID- 1-10 will get charge C1
parcels with ID- 11-20 will get charge C2
parcels with ID- 21-30 will get charge C3... so on
If this is achievable then should I use DEFINE_DPM_PROPERTY or any other function? please let me know.
March 7, 2022 at 4:17 pmRobForum ModeratorWhich is a value associated with the parcels, why would you need more than one scalar? Each parcel carries the scalar value with it: I think you just need one scalar.
March 7, 2022 at 5:11 pmShyam Prasad V AtriSubscriberOhh I thought you need to assign different scalars to particles. If that were the case it works very well for me.
I believe this is the function to initialize the scalar variables DEFINE_INIT(charge_initialize, d)
I am not sure how would you index the particle numbers. I am trying to use F_UDSI thinking that the 'i' in this is the particle index.
Is 'i' the particle index?
and can user-defined scalar "particle_charge" be initialized using the DEFINE_INIT function?
March 8, 2022 at 11:59 amRobForum Moderatorf_loops are for faces, have a look here https://ansyshelp.ansys.com/account/Secured?returnurl=/Views/Secured/corp/v221/en/flu_udf/flu_udf_sec_define_dpm_injection_init.html and look carefully in the DEFINE_DPM_INJECTION_INIT part.
March 11, 2022 at 5:15 amShyam Prasad V AtriSubscriberI see.. I have been reading that documentation and am not sure how i could define that, do i define the user defined scalar this way?
or
Is mw a user-defined scalar and i is the index?
I don't see mw getting explicitly called as user-defined scalar?
Is mw the user-defined scaler in this given example documentation?
March 11, 2022 at 7:17 amAmine Ben Hadj AliAnsys Employeemw is a variable pointer to hold the molecular weights of the species. Same with yi but for mass fractions: both have nothing to do with user scalar.
March 11, 2022 at 3:00 pmShyam Prasad V AtriSubscriberI see.. so how would I define a user defined scaler and assign the particle charge property
// i =100 as i am injecting 100 particles
if (i < 10)
{PP_USER_REAL(p,i) = 1*1.6E-19;}
if (i<20)
{PP_USER_REAL(p,i) = 3*1.6E-19;}
Is there any example in the documentation that talks about how to define user-defined scalar? Because whenever i find a user defined scalar i cant get anything.. Is it termed differently in the documentation?
March 11, 2022 at 3:03 pmAmine Ben Hadj AliAnsys EmployeeUsing DEFINE_DPM_SCALAR_UPDATE and using TP_USER_REAL(tp,i): i has nothing to do with particles: i is just the variable i (starting from 0). The Documentation does have an example for melting Index: rely on that ;)
March 11, 2022 at 3:25 pmShyam Prasad V AtriSubscriberThank you for suggesting that... I am looking at the melting index example...
I see that user_particle_vars is the user defined scalar.. But in the DEFINE_DPM_SCALAR_UPDATE how will i index through the 100 particles. I want to assign different values of charge to all the sets of 10 particles. Which is the particle index number?
is p the particle index?
lets say i want to define different melting indexes for all the particles in the above example.
DEFINE_DPM_SCALAR_UPDATE(melting_index,cell,thread,initialize,p)
{ cphase_state_t *c = &(p->cphase);
if (initialize)
{
/* this is the initialization call, set: * P_USER_REAL(p,0) contains the melting index, initialize to 0 * P_USER_REAL(p,1) contains the viscosity at the start of a time step*/
P_USER_REAL(p,0) = 0.; P_USER_REAL(p,1) = c->mu; }
else {
/* use a trapezoidal rule to integrate the melting index */
P_USER_REAL(p,0) += P_DT(p) * .5 * (1/P_USER_REAL(p,1) + 1/c->mu);
/* save current fluid viscosity for start of next step */
if (*p<10)
{P_USER_REAL(p,1) = c->mu; }
if (*p<20)
{P_USER_REAL(p,1) = c->3*mu; }
if (*p<30)
{P_USER_REAL(p,1) = c->3*mu; }
}
}
Please let me know if this is how you index through all the particle IDs to assign different melting indexes.
March 11, 2022 at 3:35 pmShyam Prasad V AtriSubscriberThank you for suggesting that
I see that user_particle_vars is the user defined scalar.
Lets say in the above example itself i am injecting 100 particles and i want to assign different melting index.
now in the DEFINE_DPM_SCALAR_UPDATE function how do i index through the different particle ids to assign it a different index?
is *p the particle index pointer?
/* update the user scalar variables */
DEFINE_DPM_SCALAR_UPDATE(melting_index,cell,thread,initialize,p)
{ cphase_state_t *c = &(p->cphase);
if (initialize) {
/* this is the initialization call, set: * P_USER_REAL(p,0) contains the melting index, initialize to 0 * P_USER_REAL(p,1) contains the viscosity at the start of a time step*/
P_USER_REAL(p,0) = 0.;
P_USER_REAL(p,1) = c->mu; }
else { /* use a trapezoidal rule to integrate the melting index */
P_USER_REAL(p,0) += P_DT(p) * .5 * (1/P_USER_REAL(p,1) + 1/c->mu);
/* save current fluid viscosity for start of next step */
if(*p < 10)
{P_USER_REAL(p,1) = c->mu; }
if(*p < 20 && *p>=10)
{P_USER_REAL(p,1) = c->3*mu; }
if(*p < 30 && *p>=20)
{P_USER_REAL(p,1) = c->4*mu; }
} }
March 11, 2022 at 3:39 pmShyam Prasad V AtriSubscriberif(*p < 10)
{P_USER_REAL(p,1) = c->mu; }
if(*p < 20 && *p>=10)
{P_USER_REAL(p,1) = c->3*mu; }
if(*p < 30 && *p>=20)
{P_USER_REAL(p,1) = c->4*mu; }
this is the place i am trying to index through all the particles and assign it different user defined scalar values.
Is this how you would index through the different particle id's?
August 26, 2022 at 4:13 amShyam Prasad V AtriSubscriberFor Everybody's benefit, I am writing this so that if anyone is trying to use any of the DPM property as a place holder. You can do so the above example is not helpful and will confuse you if you are new. And there are not many helpful resources that help you understand user-defined scalars. Anyway check this out if it helps you guys
if you have a randomization code for dpm injectionÂ
just type inÂ
P_RHO(p)=2130.0;
P_T(p) = 5.0; // use this as place holder if you are not using temperature
P_TIME(p)= 0.0;//Â use this as place holder if you are not using time you can use it as a communication channelthis helps you communicate between randomization code and cluster tracking code
Viewing 23 reply threads- The topic ‘Regarding multiple particle properties during DPM’ is closed to new replies.
Ansys Innovation SpaceTrending discussions- How do I get my hands on Ansys Rocky DEM
- Non-Intersected faces found for matching interface periodic-walls
- Fluent fails with Intel MPI protocol on 2 nodes
- Unburnt Hydrocarbons contour in ANSYS FORTE for sector mesh
- Help: About the expression of turbulent viscosity in Realizable k-e model
- Cyclone (Stairmand) simulation using RSM
- Mass Conservation Issue in Methane Pyrolysis Shock Tube Simulation
- Facing trouble regarding setting up boundary conditions for SOEC Modeling
- Script Error
- convergence issue for transonic flow
Top Contributors-
1727
-
630
-
599
-
591
-
366
Top Rated Tags© 2025 Copyright ANSYS, Inc. All rights reserved.
Ansys does not support the usage of unauthorized Ansys software. Please visit www.ansys.com to obtain an official distribution.
-