如何将new出来的volScalarField手动添加到objectRegistry?
-
如下所示,在固体力学求解器的编写中,我希望根据材料类型创建不同数量材料参数的volScalarField,进而用于主程序的求解:
List<volScalarField*> matConstList(0); if (materialType == "elastic") { // 构造出Evalue和nuvalue两个volScalarField matConstList.setSize(2); // new两个volScalarField出来,将Evalue和nuvalue都保存下来 matConstList[0] = new volScalarField("E", Evalue); matConstList[1] = new volScalarField("nu", nuvalue); } else if (materialType == "plastic") { // 类似上面的代码创建塑性参数 }
然而,在将各种材料参数的volScalarField new出来并保存到matConstList之后,主程序中使用lookupObject函数无法找到这些volScalarField,如下所示:
const volScalarField& E = mesh.lookupObject<volScalarField>("E"); // 这样会显示mesh没有名为"E"的objectRegistry
请教一下各位大佬,有没有什么办法,能将这些volScalarField手动添加到objectRegistry,使得主程序求解的时候lookupObject函数能找到他们?