In reply to Yinbo Song.
已经解决了,谢谢,需要在comsol的安装文件夹配置onnx runtime的动态链接库文件。
您好,我想请教一个问题,我编写了C代码的广义应力应变关系本构,代码中需要调用外部onnx格式的神经网络模型来根据应变得到应力,编译为DLL文件供comsol调用的时候,DLL文件还能不能调用外部的onnx模型呢?即Comsol——DLL——ONNX。我在VS code编译器中对DLL文件调用ONNX模型进行了验证,输出是没有问题的,但是将DLL文件导入comsol中却提示“Error evaluating external variables. – Error message: External material evaluation error: ”
In reply to 佳亮 张.
您好,在这篇博客中提到的示例模型文件中,主要是演示外部材料导入以及和内置的材料模型互相验证的目的。因此整体模型几何较为简单,是一个正方形,并且在网格划分上,整个方块上是仅布置了一个网格,所以最后的损伤分布是一个值。如果想模拟岩石的单轴压缩实验并观察其裂缝分布,您可以参考这个案例://www.denkrieger.com/model/brittle-damage-in-uniaxial-tension-62761
该模型的损伤在整个几何上都是一个数,能否区分开呢,想模拟岩石的单轴压缩实验,得到一条裂缝(损伤)
可以在外部材料模型中对其他物理场的因变量进行输入与输出吗?进而可以实现固体力学与其它物理场之间的强耦合
In reply to 岑 陈.
你对应comsol下的mph文件看就知道答案了,可以加一下联系方式,交流一下,我也在做这个,q:939060709
您好,我想请教一下定义外部材料的C语言程序中的相关问题。
EXPORT int eval(double e[6], // Input: Green-Lagrange strain tensor components in Voigt order (xx,yy,zz,yz,zx,xy)
double s[6], // Output: Second Piola-Kirchhoff stress components in Voigt order (xx,yy,zz,yz,zx,xy)
double Jac[6][6], // Output: Jacobian of stress with respect to strain, 6-by-6 matrix in row-major order
int *nPar, // Input: Number of material model parameters, scalar
double *par, // Input: Parameters: par[0] = E, par[1] = nu, par[2] = sigyYs0, par[3] = ETiso
int *nStates1, // Input: Number of states, scalar
double *states1, // Internal state: Plastic strain tensor components in Voigt order (xx,yy,zz,yz,zx,xy)
int *nStates2, // Input: Number of states, scalar
double *states2, // Internal state: Accumulated effective plastic strain
int *nStates3, // Input: Number of states, scalar
double *states3)
这段程序里的参数,输入输出是软件内部固定的,还是用户自定义的