关于进行瞬态计算矩阵迭代过程的数据操作
-
各位老师好,我最近在OpenFOAM中尝试对瞬态计算矩阵迭代过程中的物理场进行操作,主要希望对各个迭代步的计算结果进行输出、分析和修改,看了相关源码感觉不得要领,希望各位老师不吝赐教应该如何实现。
-
@李东岳 李老师您好,按照您提供的思路我尝试对矩阵求解器的类进行了修改(以PCG为例),我修改了PCG.H和PCG.C,但是在数据输出这块还有点问题想请教一下。我本来想按您说的把场提取到顶层输出,所以想在PCG的solve中多加一个输入用来存储一系列迭代的场,然后再到顶层输出。但我发现这个添加函数输入项的过程牵一发动全身,从lduMatrix、fvMatrix到fvm等一系列的类和源码都需要进行调整,感觉有点杀鸡用牛刀了。但是如果直接在PCG.C中输出好像获取不了时间步的信息,不知道怎么记录输出不同时间步的结果。所以想再次请教一下有没有更好的方法实现这一过程?谢谢。
-
@李东岳 在 关于进行瞬态计算矩阵迭代过程的数据操作 中说:
是不是不应该记录时间步信息?
李老师您好,这里是因为我考虑的每个时间步都要输出多个场,所以每个时间步输出数据的filename应当是与当前时间步相关的。所以只在PCG类里做改动无法读取时间步信息的话,无法定义合适的filename,对后处理会带来麻烦。而且没有时间步这种全局变量信息,仅在PCG类里做改动无法定义合适的filename的话,为了不覆盖之前的输出,似乎只能在同一个file里add数据,这种方法感觉是可以记录所有时间步及其迭代步信息的,但是后处理也比较麻烦,需要重新核对时间步,感觉不够优雅,所以我希望有更好的解决方法。个人技术和思考比较浅薄,感谢大佬赐教。
-
@李东岳 在 关于进行瞬态计算矩阵迭代过程的数据操作 中说:
是要改很多私有成员变量啥的,来回嵌套。我想想有没有什么好办法。
谢谢李老师关注,确实我本来也以为改一改矩阵求解器就行,结果发现OF里嵌套继承的类太多了,越改越麻,所以才来提问,希望有更好的方法。