python控制修改comsol边界条件仿真方法

直接明了贴代码:

python 复制代码
from mph import Client
import mph
import numpy as np
import csv
import time


client = Client()

electrodes_1a = [144, 135, 126, 117, 108, 99, 90, 78]
electrodes_gnd = [149, 258, 364, 470, 576, 682, 788, 886]


model = client.load(r"E:\Wuxh\comsol\SR\CEP_basis\basis_model.mph")
OUTPUT_CSV = r"E:\Wuxh\comsol\SR\CEP_basis\R_matrix.csv"


Rmat = np.zeros((8, 8))
total = len(electrodes_1a) * len(electrodes_gnd)
count = 0
start_time = time.time()

for i, term_bd in enumerate(electrodes_1a):
    for j, gnd_bd in enumerate(electrodes_gnd):
        count += 1
        print(f"\n--- Running {count}/{total} : Terminal={term_bd}, Ground={gnd_bd} ---")

        model.java.component("comp1").physics("ec").feature("gnd1").selection().set(gnd_bd)
        model.java.component("comp1").physics("ec").feature("term1").selection().set(term_bd)

        print("gnd1 set:",model.java.component("comp1").physics("ec").feature("gnd1").selection())
        print("term1 set:",model.java.component("comp1").physics("ec").feature("term1").selection())

        model.java.sol("sol1").runAll()

        gev = model.java.result().numerical("gev1")

        tbl = model.java.result().table("tbl1")
        # tbl.clearTable()    # 重置
        gev.set("table", "tbl1")
        gev.setResult()
        print("计算结果:" ,tbl.getReal()[0][0])
        Rmat[i, j] = tbl.getReal()[0][0]

# 保存 CSV
with open(OUTPUT_CSV, "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["term\\gnd"] + electrodes_gnd)
    for idx, row in enumerate(Rmat):
        writer.writerow([electrodes_1a[idx]] + list(row))

elapsed = time.time() - start_time
print("\n==============================")
print("全部 64 组仿真完成!")
print(f"矩阵已保存至: {OUTPUT_CSV}")
print(f"总耗时: {elapsed:.1f} 秒")
print("==============================\n")

这是一个不断修改接地和接电流边界来不断跑仿真获得电阻的代码,需要准备的是已经能够跑通仿真的源文件,然后打开comsol server,运行即可,至于这里面的每一部分怎么设置,得看api,我是拿着ai给的建议一个一个试的,试了一下午终于试完。另外这里其实应该还要划分网格之类的操作,但是因为我原始模型都设置好了,然后改边界不影响网格分布,所以可以直接运行。

相关推荐
10mAh4 分钟前
【Java】ArrayList 遍历删除为什么报错?三种写法与漏删复现
java·开发语言·windows
坊钰23 分钟前
【LangGraph框架入门级】2. 图核心概念:State、Node、Edge 与 Reducers
python·ai编程·langgraph
wewowilling25 分钟前
AI大模型开发--01Python基础(无废话)
开发语言·python·函数
小猴子爱上树26 分钟前
跨境电商AI图片翻译工具:批量图片翻译、视频字幕翻译与智能抠图一站式解决
大数据·人工智能·python·音视频
5G微创业29 分钟前
去除抖音视频水印的Python实现
python·微信小程序·去水印
WeiXin_DZbishe31 分钟前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计
小羊没烦恼!32 分钟前
OS X 上使用.NET开发应用程序
开发语言·前端·数据库·人工智能·c#·策略模式
M--Y33 分钟前
LangChain 提示工程:少样本提示与输出解析器
python·langchain·大模型·llm·输出解析器·少样本提示
朱包林34 分钟前
iTerm2终端配置指南
linux·javascript·python·云原生·容器·kubernetes·云计算
棉猴35 分钟前
玩游戏学Python5-函数
开发语言·python·函数·玩游戏·游戏编程