CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Programming & Development (
-   -   Adding equations to existing solvers (

treima July 9, 2012 09:46

Adding equations to existing solvers

I want to add some equations to existing solvers, at the moment to rhoCentralFoam. The difficulties in this task is the dependency of factors from the calculated values in rhoCentralFoam.

I like to add this equation:
A, B matrices (4x4), L a vector (which should be calculated).

A * dL/dx + B * dL/dy = 0.

and the coefficents from A and B consists of

a11 = func(rhoE,rhoU.components(0),rhoU.components(1)).
a12 = func(rhoE,rhoU.components(0),rhoU.components(1)).
and so on, the same for B.

In Code it looks like

... calculations rhoCentralFoam ...

// definition factors
<problem1> a11 = pow(rhoU.component(0),2) + pow(rhoU.component(1),2);
<problem1> a12 = rhoE;
and so on.

// building matrices

// solving equation

To my problems:

the matrix coefficents are scalars, but which datatyp is the best one? I thought of volScalarField, because for example rhoE and the components of rhoU are volScalarField, too. I have to deal with the components of rhoU, because I couldnīt find a vectorial notation.

How can I intialise the matrix? Taking the tensor-class seems not to be an option, because Iīve a 4x4 matrix and gives an error: "attempted to assign to a const reference to constant object" while performing the program.

The last point is the equation. If to find a implementation for the partial derive of L to x and multiplicate this with a matrix. The same for y. For this step I havenīt tried very much things, because Iīve problems building my matrix. But one thing is, for solving in need fvc::ddt(L). This means Iīve to be careful with the dimensions.

Perhaps anybody can help me with some of my problems and my description is not to confusing ;). Maybe there is another, and better one, entrance to this problem. Iīm open for every suggestion.


Best regards


All times are GMT -4. The time now is 15:11.