CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Determining the calculation sequence of the regions in multe regions calculation (https://www.cfd-online.com/Forums/openfoam-solving/167773-determining-calculation-sequence-regions-multe-regions-calculation.html)

peterhess March 8, 2016 10:36

Determining the calculation sequence of the regions in multe regions calculation
 
hello everybody,

do anybody knows how to determine the calculation sequence of the regions in multi regions calculation?

I made the following:

- three regions calculation. one of them is fluid and the other two are solid
- made all the necessary pre-processing for chtMultiRegionSimlieFoam
- started the calculation
- the calculation works in this sequence: fluid - solid1 - solid2
- in regionProporties dictionary I changed the sequence of the solids to solid2 then solid1
- restart calculation works in this sequence: fluid - solid2 - solid1
- result: by changing the calculation sequence in the regionProporties dictionary, you are able to control the calculation sequence of the solid regions...

Problem: how to change the sequence to let the fluid not the first calculated region?

Changing the regions in regionProporties
from:

fluid (fluid)
solid (solid1 solid2)

to:
solid (solid1 solid2)
fluid (fluid)

did not solved my problem...

Must I change something in chtMultiRegionSimpleFoam.c ?

regards,

Peter

Bloerb March 8, 2016 12:08

I do not see the reason for this change but yes you would need to recompile the solver. The solver now solves in the folling order:

Code:

        forAll(fluidRegions, i)
        {
                ...
        }

        forAll(solidRegions, i)
        {
                ...
        }

You have to switch these two loops and that's it. But again there is no real reason to do this.

peterhess March 8, 2016 15:18

Background
 
Hello bloerb,
Thanks for 4he answer!

The background is that i work on comparation between the two methods and their effect on the speed of the calculation.

Because the solid region (s) have heat source, the free convection is forced as an effect of the hot surfaces of the solid regions...I think the calculation should be faster, if the surfaces became faster (on) temperature...
That should (I think and want to examine) accelerate the calculation in solid and also the fluid regions...

I will try to change and recompile tomorow.
I will post also the results (if any) later.

Regards
Peter

Bloerb March 9, 2016 00:16

Most often people are trying to fix things on the wrong end hence my answer, but yes a valid concern. The following steps should get you where you want.

copy the solvers
Code:

cp -r $FOAM_SOLVERS/heatTransfer/chtMultiRegionFoam yourDirectory
rename chtMultiRegionSimpleFoam.C to myChtMultiRegionSimpleFoam.C

And the following changes in Make/files
Code:

myChtMultiRegionSimpleFoam.C

EXE = $(FOAM_USER_APPBIN)/myCMultiRegionSimpleFoam

now switch this part in myChtMultiRegionSimpleFoam.C to look like this:

Code:

        forAll(solidRegions, i)
        {
            Info<< "\nSolving for solid region "
                << solidRegions[i].name() << endl;
            #include "setRegionSolidFields.H"
            #include "readSolidMultiRegionSIMPLEControls.H"
            #include "solveSolid.H"
        }

        forAll(fluidRegions, i)
        {
            Info<< "\nSolving for fluid region "
                << fluidRegions[i].name() << endl;
            #include "setRegionFluidFields.H"
            #include "readFluidMultiRegionSIMPLEControls.H"
            #include "solveFluid.H"
        }

now just type wclean and wmake and you are done and should be able to use your new solver myChtMultiRegionSimpleFoam

You do need the chtMultiRegionFoam directory above it since in Make/options you can see that some files are used from there. You can ofcourse also copy every missing file from the chtMultiRegionFoam folders in your solid directory first.
Code:

EXE_INC = \
    -Ifluid \
    -Isolid \
    -I../solid \


peterhess March 9, 2016 03:07

done
 
Hello Bloerb,

thanks a lot for the answer and the steps.

I made it and it works.

Regards,

Peter


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