如何在可编程源项中使用codeCorrect或codeSetValue来实时修正场量
-
有一项工作需要在每个时间步对物理场进行修正,之前采用的方法是参考
fvOptions/corrections
的源码编译自己的库(OpenFOAM-v2206),但是这种方法比较麻烦。现在我注意到coded source的参考文档有这么一句话:The coded option is available to all primitive field types, i.e.
scalarCodedSource: scalar equations
...
It provides hooks to:include sources: codeAddSup
constrain values before the equation is solved: codeSetValue
apply corrections after the equation has been solved: codeCorrect看上去似乎能在求解控制方程的前后使用
codeSetValue
或codeCorrect
调整场量,从源码看似乎传入了一个场的引用:template<class Type> void Foam::fv::CodedSource<Type>::correct ( GeometricField<Type, fvPatchField, volMesh>& field ) { DebugInfo << "fv::CodedSource<" << pTraits<Type>::typeName << ">::correct for source " << name_ << endl; updateLibrary(name_); redirectOption().correct(field); }
但是最后并没有找到用法...在
codeCorrect
代码段里试了试变量名称和field
都显示变量未声明,不知哪位大佬有正确的使用方法?还是我理解有误,这个函数并不能实现修改场量的功能?