Skip to content

solverInfo unable to find fields in v2312

Summary

Using solverInfo as a functionObject in controlDict, and writing residualfields results in Warning/Error: Valid solver fields are: 0() This bug isn't present in v2212, thus bug might have been introduced when changes to fieldSelection.C or solverFieldSelection.C was made

Steps to reproduce

solverInfo
{
        type            solverInfo;
	type            solverInfo;
	libs            ("libutilityFunctionObjects.so");
        fields           (".*");  // both wildcard or fields (U p); will cause the same error
	writeResidualFields yes;
        executeControl  timeStep;
        writeControl    timeStep;
}

Example case

Any case can be chosen to recreate the bug, backwardFacingStep2D was chosen to reproduce this

What is the current bug behaviour?

No field is written because fields cannot be found, postProcessing does not log the residuals in solverInfo.dat either

What is the expected correct behavior?

postProcessing should log the residuals in solverInfo.dat and write residual fields if toggled on

Relevant logs and/or images

Results in this:
--> FOAM Warning : 
    From virtual bool Foam::functionObjects::fieldSelection::checkSelection()
    in file functionObjects/fieldSelections/fieldSelection/fieldSelection.C at line 179
    Field ".*" not found
--> FOAM Warning : 
    From virtual bool Foam::functionObjects::solverFieldSelection::updateSelection()
    in file functionObjects/fieldSelections/solverFieldSelection/solverFieldSelection.C at line 82
    Valid solver fields are: 0()

Environment information

  • OpenFOAM version : v2312
  • Operating system : ubuntu
  • Hardware info : ?
  • Compiler : ?

Possible fixes

functions
{
	#includeFunc solverInfo
}

adding that in the controlDict works but it will only output the residual logs in solverInfo.dat and not save the residual fields

Edited by gng