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/)
-   -   starting off with OpenFOAM (https://www.cfd-online.com/Forums/openfoam-programming-development/84707-starting-off-openfoam.html)

semaviso February 7, 2011 06:31

starting off with OpenFOAM
 
HI GUYS

I am a new user of OpenFOAM and would like to solve an unsteady energy equation for a compressible gas through a porous media.

I have basic knowledge of C++ prograqming, please help.

thanx in advance

kathrin_kissling February 8, 2011 02:24

Hi semaviso,

have a look into the rhoReactingFoam application to see how its done there.
This is the general way to go. Look whether theres something you need.

Best

Kathrin

semaviso February 16, 2011 08:21

thanx Kathrin

I checked it out and now I want to understand the meaning of:

00008 volScalarField rUA = 1.0/UEqn.A();
00009 U = rUA*UEqn.H();


from rhoReactingFoam/pEqn.H

How can I write Darcy's formula (U_gas = (-permK/mu)*grad(p) )
U_gas being the gas flux or velocity in m/s
in OpenFOAM to use with the mass transport equation.

thanx again for your help.:)

kathrin_kissling February 16, 2011 09:48

1. Question
This is part of the pressure velocity coupling see:
http://powerlab.fsb.hr/ped/kturbo/Op...jeJasakPhD.pdf
for details.

What is done:
UEqn.A() gives you the central coefficient of the the fvMatrix (fv=finiteVolume) UEqn.
UEqn.H() gives you the H operator which is basically
H(UEqn)=source(UEqn)-diagonal(UEqn)U

in that way the velocity is evaluated by U = rUA*UEqn.H();

ok?

2. Question
I'm not really sure what your trying to do. Can you specify a little?
Do you want to use your U_gas in the continuity equation?
Why?

Best
Kathrin

Cyp February 16, 2011 16:37

Hi semaviso!

There are several way to solve your problem:

- either your add a source term in an existing momentum equation (for example rhoReactingFoam as suggested by Kathrin, or may be rhoPisoFoam will be easier to begin) :

Code:

    fvVectorMatrix UEqn
    (
        fvm::ddt(rho, U)
      + fvm::div(phi, U)
      + turbulence->divDevRhoReff(U)
    ==
        rho*g
      - fvm::Sp(mu/K,U)
    );

or you code your own porous media solver. For a incompressible flow, you have to solve the following diffusion equation on P variable :

Code:

solve
(
    fvm::laplacian(-K/mu,P)
);

It is not very difficult to adapt this porous solver to compressible flow (Darcy's law replaced within continuity equation).


Regards,
Cyp

kathrin_kissling February 17, 2011 02:40

Maybe you want to have a look into rhoPorousFoam. I never worked with it. But it sounds promising.

Best

Kathrin

semaviso February 22, 2011 08:21

thanx guys it worked.

another question is, how do I add a source term to an energy balance equation if the source term is as follows: [deltaH - T(Cp_ss - Cp_s)]

deltaH : Heart of reaction
Cp_ss : saturated solid (porous media) heat capacity
Cp_s : solid (porous media) heat capacity

kathrin_kissling February 23, 2011 02:10

Which variable are you solving for in your energy equation T or h?

Best Kathrin

semaviso February 24, 2011 03:09

Hi Kathrin

I want "T" but I had used the energy equation with "h".
since h = Cp*T.

thanx in advance

kathrin_kissling February 25, 2011 04:07

could you post the equation you have?
Do you reconstruct the Temperature from the energy?

Best

Kathrin

semaviso February 25, 2011 04:38

the equation is from http://onlinelibrary.wiley.com/doi/10.1002/er.919/pdf

equation 1 of this publication.

I have decided to use h becouse i found a lot of hEqn.H file that I think have something almost similar to this equation.

Cyp February 25, 2011 04:47

Hi semaviso!

You should try something like that:

Code:

fvm::ddt(rho*Cpg,T)
+fvm::div(phi,T)
-fvm::laplacian(lambda,T)
==
fvm::Sp(m_dot*(Cpg-Cps),T)
-m_dot*dH0

where the flux phi is defined as:
Code:

surfaceScalarField phi = rho*Cpg*linearInterpolate(U)&mesh.Sf();
(if rho or Cpg are volScalarField, you must use:

Code:

surfaceScalarField phi = fvc::interpolate(rho)*fvc::interpolate(Cpg)*linearInterpolate(U)&mesh.Sf();
Best Regards,
Cyp

semaviso August 2, 2011 07:50

thank you a lot,

I have been tryin to modify the porousExplicitSourceReactingParcelFoam to solve for a compressible gas inside a porous reactor.

Regards,
SBU


All times are GMT -4. The time now is 18:06.