CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   How can I solve non-dimensional equations in FOAM (https://www.cfd-online.com/Forums/openfoam-programming-development/125625-how-can-i-solve-non-dimensional-equations-foam.html)

mcgintygs October 28, 2013 04:17

How can I solve non-dimensional equations in FOAM
 
I'm interested in solving (as a starting point) a non-dimensionalised version of laplacianFoam.

After I have chosen my non-dimensionalisation, how can I implement this in Foam?

I'm worried that foam checks dimensions!

For example:
How do I change the timestep and spatial coordinates (in blockMeshDict) to be non-dimensional, and how do I deal with diffusion coefficients (which will become ratios of diffusion coefficients after the non-dimensionalisation)

Is it possible to do this. Does anyone know how?

Any help would be much appreciated.

ripperjack October 28, 2013 15:02

Quote:

Originally Posted by mcgintygs (Post 459372)
I'm interested in solving (as a starting point) a non-dimensionalised version of laplacianFoam.

After I have chosen my non-dimensionalisation, how can I implement this in Foam?

I'm worried that foam checks dimensions!

For example:
How do I change the timestep and spatial coordinates (in blockMeshDict) to be non-dimensional, and how do I deal with diffusion coefficients (which will become ratios of diffusion coefficients after the non-dimensionalisation)

Is it possible to do this. Does anyone know how?

Any help would be much appreciated.

You need to do some modification on the solver, e.g., change nu to 1/Re, change kappa to Pr, etc. The equations have very similar form the only different is the coefficient, so it can be done without large modification.

Do not change the unit of variables!

Regards,

Lieven October 28, 2013 16:08

Quote:

How do I change the timestep and spatial coordinates (in blockMeshDict) to be non-dimensional
As far as I know you can't. In blockMesh you could use the convertToMeters parameter if you want to enter the coordinates with the dimensionless values, but the dimensions will always be kept as meters.

Second, you could change all the equations you want to solve ... but alternatively you could also simply solve the existing equations and rescale your solution when writing the solution. That works best for me (for one reason, you'll always be stuck with the time derivative and nabla operator which keep their dimensions).

Cheers,

Lieven

wzx1989221 March 20, 2014 06:29

Hi Lieven,

I just wonder how did you rescale your solution? Can you give me a hint please?
Thank you very much.

Kind regards,
Tony

Lieven March 22, 2014 07:23

Hi Tony,

Have a look at http://en.wikipedia.org/wiki/Dimensional_analysis
Basically, you rescale your solution by multiplying it with reference quantities. For example, a concentration in [kg/m³] can be rescaled as:
Code:

c+ [-] = c [kg/m³]* L² [m²]*V[m/s] / R [kg/s]
where L is a reference length (e.g. stack height, when it concerns the release of a pollutant from a stack), V is a reference velocity (e.g. velocity at the tip of a stack) and R is the release rate.

This is merely an example but I hope you got the picture.

Cheers,

L

wzx1989221 March 22, 2014 07:35

Hi Lieven,

It is really nice of you to give me the explanation. My case is I want to rescale my result to nondimensional value and continue the simulation, I wonder how you achieve it in OpenFOAM? I have done nondimensionalisation for U, p fields and geometry size, however, the simulation didn't run continuously. The simulation should continue without gap, right?

Kind regards,
Tony


All times are GMT -4. The time now is 13:30.