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/)
-   -   Heat source using fvOptions in laplacianFoam (https://www.cfd-online.com/Forums/openfoam-programming-development/139111-heat-source-using-fvoptions-laplacianfoam.html)

osha July 17, 2014 08:09

Heat source using fvOptions in laplacianFoam
 
Hello Foamers,

I am working on a solid conduction problem using laplacianFoam where I wish to add a heat generation term Q [W/m^3] on selected cells (using topoSet) in the mesh. I have modified the laplacianFoam in following way:

Quote:

fvm::ddt(T) - fvm::laplacian(DT, T) - fvOptions(T)
But I need to apply the heat generation term which I intend to keep constant. I am not sure how I achieve that with the above formulation.


After reading on fvOptions, I realized that I could use scalarExplicitSetValue to define a scalar explicit source. But this method will only fix temperature in the selected cellZone whereas I intend to fix the heat generation rate.


I do not intend to define the heat generation region in geometry this is why fvOption is more suitable for my problem. I am looking forward to your insights.

Thank you.

osha July 17, 2014 10:32

searching further ...
 
As I was digging further I glanced upon semiImplicitSource and tried to use it. I am not sure if my formulation is right as my results are highly non-physical.

Here is what I tried. The heat generation rate Q [W/m^3] can be written as

Quote:

Q=rho*Cp*(T-T_old)
which implies

Quote:

T = T_old + Q/(rho*Cp)
So, I define injectionRateSuSp as

Quote:

T (Q/(rho*Cp) 1<---[for T_old] )
Do you think the above method make sense?

Though, I am not sure as the temperature field gives out unreal numbers. The absolute temperature goes down to 0. :confused:

Any insight will be much appreciated.

Thank you.

CI8 March 21, 2017 11:32

Have you found another solution? I used scalarExplicitSetValue for the same purpose, but I have also achieved constant temperature field with no iterations for the temperature equation during the simulation. I was intended to set a average temperature field for the energy balance for my cyclic pipe flow case with incompressible fluid.

agustinvo March 22, 2017 09:05

Hello

I am using semiImplicitSource and I have no problem. If you pay atention

Code:

Description    Semi-implicit source, described using an input dictionary.  The injection   
rate coefficients are specified as pairs of Su-Sp coefficients, i.e.         
\f[
            S(x) = S_u + S_p x       
\f]     
where   
\vartable
        S(x)    | net source for field 'x'
        S_u    | explicit source contribution
        S_p    | linearised implicit contribution   
\endvartable     
Example of the source specification:     
\verbatim
    <Type>SemiImplicitSourceCoeffs
    {        volumeMode      absolute; // specific
        injectionRateSuSp
        {            k          (30.7 0);
            epsilon    (1.5  0);        }
    }
\endverbatim     
Valid options for the \c volumeMode entry include:
    - absolute: values are given as \<quantity\>
    - specific: values are given as \<quantity\>/m3

Once you know your heat source, you should divide by rho and Cp so you get the units of your equation. Take a look in the units of your heat source, if it is absolute (W) or specific (W/m3).

Haveing a fixed heat source, just do as above, set T (Q/(rho*Cp) 0);

PS:hello again Edoardo

uosilos October 27, 2020 05:28

Quote:

Originally Posted by agustinvo (Post 641789)
Hello

I am using semiImplicitSource and I have no problem. If you pay atention

Code:

Description    Semi-implicit source, described using an input dictionary.  The injection   
rate coefficients are specified as pairs of Su-Sp coefficients, i.e.         
\f[
            S(x) = S_u + S_p x       
\f]     
where   
\vartable
        S(x)    | net source for field 'x'
        S_u    | explicit source contribution
        S_p    | linearised implicit contribution   
\endvartable     
Example of the source specification:     
\verbatim
    <Type>SemiImplicitSourceCoeffs
    {        volumeMode      absolute; // specific
        injectionRateSuSp
        {            k          (30.7 0);
            epsilon    (1.5  0);        }
    }
\endverbatim     
Valid options for the \c volumeMode entry include:
    - absolute: values are given as \<quantity\>
    - specific: values are given as \<quantity\>/m3

Once you know your heat source, you should divide by rho and Cp so you get the units of your equation. Take a look in the units of your heat source, if it is absolute (W) or specific (W/m3).

Haveing a fixed heat source, just do as above, set T (Q/(rho*Cp) 0);

PS:hello again Edoardo


I have to use a source, the only data is that it is a ignitor of 10kJ.



I am doing it now as:
Code:

type            semiImplicitSource;

        timeStart      0;
        duration        1;
        selectionMode  cellSet;
        cellSet        ignitionCells;
               
        volumeMode      absolute;
                     
        sources
        {
            h
            {
                explicit 1e4;
                implicit 0;
            }
        }


I'm obtaining so high temperatures, is it being set properly? how can I estimate the duration of the source??


All times are GMT -4. The time now is 03:39.