Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • openfoam openfoam
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 413
    • Issues 413
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 7
    • Merge requests 7
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Development
  • openfoamopenfoam
  • Issues
  • #1694
Closed
Open
Issue created Apr 29, 2020 by Robin Kamenicky@Robin

ThermalPhaseChangePhaseSystem.C Info statements for parallel run

Summary

Eulerian-Eulerian phase change solvers do not provide the right information about wDmdt, iDmdt and Tf when running in parallel and ThermalPhaseChangePhaseSystem.C is used.

Steps to reproduce

run $FOAM_TUTORIALS/heatTransfer/chtMultiRegionTwoPhaseEulerFoam/solidQuenching2D using one core and 4 cores. The information about wDmdt written in log will start to differ right from the beginning. If more cores are used it can get more obvious depends which core writes the log. Apparently, we can not see the iDmdt because boiling/condensation in the bulk is off but should be easy to see in the same manner.

Example case

A tutorial case can be used.

What is the current bug behaviour?

Described in the summary section.

What is the expected correct behavior?

The information written are meant to be min, mean and max values. Therefore these values are expected to be given as values on the whole domain not on "random" core.

Relevant logs and/or images

Environment information

  • OpenFOAM version : v1906
  • Operating system : Ubuntu 16.04.6 LTS
  • Hardware info :
  • Compiler : gcc

Possible fixes

I assume that it happens just because of the functions (min, max, average) used to find/calculate the values.

Using v1912:

ThermalPhaseChangePhaseSystem.C:432..436 `

Info<< "Tf." << pair.name()
        << ": min = " << min(Tf.primitiveField())
        << ", mean = " << average(Tf.primitiveField())
        << ", max = " << max(Tf.primitiveField())
        << endl;`

ThermalPhaseChangePhaseSystem.C:443..448 `

Info<< "iDmdt." << pair.name()
            << ": min = " << min(iDmdt.primitiveField())
            << ", mean = " << average(iDmdt.primitiveField())
            << ", max = " << max(iDmdt.primitiveField())
            << ", integral = " << fvc::domainIntegrate(iDmdt).value()
            << endl;`

ThermalPhaseChangePhaseSystem.C:527..532 `

Info<< "wDmdt." << pair.name()
            << ": min = " << min(wDmdt.primitiveField())
            << ", mean = " << average(wDmdt.primitiveField())
            << ", max = " << max(wDmdt.primitiveField())
            << ", integral = " << fvc::domainIntegrate(wDmdt).value()
            << endl;`

In all these lines change functions min to gMin, max to gMax, average to gAverage. I have not tried the code with the changes by myself.

Assignee
Assign to
Time tracking