CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Programming & Development (
-   -   Particle transport (

nandiganavishal September 3, 2012 11:34

Particle transport
Dear Foamers,

I would like to solve the following Newton's law of motion:

dp/dt = F(x), where p is the position of the particle, and x corresponds to the current p value. I have the distribution of F with respect to x.

In other words, in algebraic sense,

p_new = p_old + (delta_t)*F(p_old).

My query is how to calculate F(p_old) at every time step. Please let me know.


Djub September 4, 2012 05:12

Hi vishal
your question is quite strange here, in an OpenFOAM forum.
OpenFOAM is a computing tool which works on FIELDS.
A field is a concept of "something" which can vary respect to time and 3D space. Let say function f(x,y,z,t). This "something" can be a lot of different things: pressure, velocity, temperature, density, strain, stress, phase,...
Mathematically, these "things" are described in terms of scalars, vectors, tensors.

The power of OpenFOAM relies on a formal language which is able to solve for partial derivative equations.

You can download here some documentation:

Mathematically, your problem seems to be "simply" a problem of integration. GNU Octave should be better tool for you.

Physically, I think you are mysunderstanding: in this equation, p is not the position but the momentum, saying a product of a mass m and a velocity v. Velocity is the derivative of the position x.

nandiganavishal September 4, 2012 10:25

Hi Julien,

Thanks for the reply.

Well, the equation I wanted to solve is the Langevin/Brownian dynamics with White noise, and neglecting the acceleration term in it. I wanted to couple this equation into Poisson - Nernst Planck equation which I have developed in OpenFOAM. However, before incorporating the noise and complicating it I wanted to know, if it is possible to calculate the variable f at a particular position, in the following equation.

dp/dt = A*f(x=p_old)

You are right, it is a momentum equation, however, I neglect the acceleration and consider a position dependent force. Please let me know, how to incorporate this equation in OF or in general how to solve for a Langevin equation.



wyldckat September 4, 2012 15:10

Greetings to all!

@Vishal: If I understand you correctly, I think you can look into the Lagrangian capabilities that OpenFOAM has:

Another possibility would be to look into the tutorial "mesh/moveDynamicMesh/simpleHarmonicMotion", which I think it solves a weight box hanging on elastics or cables...

Best regards,

edit: I've moved this thread to the programming section, which is where this fits the best...

nandiganavishal September 4, 2012 15:52

Thanks Bruno. I would read it and would contact you.



nandiganavishal January 26, 2013 23:02

Hi Bruno,

I want to simulate a chain of particles, whose interaction potential is known (say a nonlinear spring potential + Lennard-Jones potential). I want to study the dynamics of this chain using Lagrangian approach. However, I would like to know if it is possible to add a noise force with a Gaussian distribution in the Newton's equation. Also, is it possible to implement Lennard-Jones type potential in OF while solving the dynamics.

Kindly let me know where I could find some tutorials for such cases.

Thanks a lot for the help



wyldckat January 27, 2013 07:04

Hi Vishal,

I don't know of any tutorials that have all of those characteristics, but here's a list of links that can help you start to track down this kind of information:
Good luck!

nandiganavishal February 6, 2013 11:16

Hi Bruno,

I would like to solve the following equation

fvm::laplacian(eps_r,Phi) == -alpha * Z1*C1-alpha*Z2*C2

where eps_r is spatially varying. I wrote the code to solve this problem when eps_r(x) at time t=0 is specified. However I would like to know if it is possible to define a function in OpenFOAM where eps_r is a function of time and space. Once this is defined, I want to read this variable at every time instant and solve the above governing equation.

Please let me know.



All times are GMT -4. The time now is 12:59.