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     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 \     - specific: values are given as \/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.