外部函数功能用来导入用C语言或者通过包装接口的Fortran语言编写并编译的动态链接库。不同的平台对应不同的格式:
windows:*.dll
linux:*.so
macos:*.dylib
一个自定义函数 f(x)=sin(x)/x 的例子(c语言):

函数传递的参数是分成实部和虚部的数组,调用内部函数时,可以只传递实数。
源代码的编译依据平台的不同而不同,window下采用Visual Studio(假设已经安装)编译:
1、开始菜单找到“Visual Studio x64 Win64 Command Prompt“点击运行
2、在命令窗口用dir命令切换到源代码目录
3、编译命令
cl /MT /c ext.c
link /OUT:ext.dll /DLL ext.obj
linux下编译命令(用gcc编译):
gcc -fPIC -c ext.c
gcc -shared -fPIC -Wl,-z -Wl,defs -o ext.so ext.o -ldl -lm
macos下编译命令(用gcc编译):
gcc -fPIC -c ext.c
gcc -dynamiclib -fPIC -o ext.dylib ext.o
编译得到了动态链接库后,就可以在COMSOL中调用了:

默认情况下,软件的安全设置不允许执行外部库,需要在首选项下作修改:
Preferences -> Security -> General

要绘制函数图来预览,需要设置上下限:

这样就能得到函数图:

windows:*.dll
linux:*.so
macos:*.dylib
一个自定义函数 f(x)=sin(x)/x 的例子(c语言):

函数传递的参数是分成实部和虚部的数组,调用内部函数时,可以只传递实数。
源代码的编译依据平台的不同而不同,window下采用Visual Studio(假设已经安装)编译:
1、开始菜单找到“Visual Studio x64 Win64 Command Prompt“点击运行
2、在命令窗口用dir命令切换到源代码目录
3、编译命令
cl /MT /c ext.c
link /OUT:ext.dll /DLL ext.obj
linux下编译命令(用gcc编译):
gcc -fPIC -c ext.c
gcc -shared -fPIC -Wl,-z -Wl,defs -o ext.so ext.o -ldl -lm
macos下编译命令(用gcc编译):
gcc -fPIC -c ext.c
gcc -dynamiclib -fPIC -o ext.dylib ext.o
编译得到了动态链接库后,就可以在COMSOL中调用了:

默认情况下,软件的安全设置不允许执行外部库,需要在首选项下作修改:
Preferences -> Security -> General

要绘制函数图来预览,需要设置上下限:

这样就能得到函数图:
