Python版AEiで二分探査法

Python版のAEiを作成しました。
手始めに、Calculixの接触問題で入力荷重を変化させ、二分探査法により歪が特定の値となる荷重値を求めるデモを作成しました。

解析を実行するスクリプトは以下のとおり。

import sys
import AEpy as AEI

pmax = 1.0
pmin = 0.1
target = 2.0e-5

while (pmax - pmin) > 1.0e-6:
	pmid = (pmax + pmin) / 2.0
	BASE = 'case_test'
	INP = BASE + '.inp'
	DAT = BASE + '.dat'
	FRD = BASE + '.frd'
	AEI.a('FRDNAME', FRD)
	AEI.a('MYLOAD',pmid, 'L')
	AEI.b('bolt_tmp.txt', INP)
	AEI.b('cgx.txt', 'my.frd')
	AEI.c('ccx ' + BASE)
	AEI.c('cgx -b my.frd')
	AEI.c('python my_max.py ' + DAT + ' result.csv')
	M = AEI.d('result.csv')
	eps = float(M[0][0])
	print('LOAD=', pmid, 'eps=', eps, 'target=', target)
	if eps > target:
		pmax = pmid
	else:
		pmin = pmid

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA