Femtet2026.0マクロヘルプ/マニュアル
 

ホーム / 計算結果の抽出 / CGogh / 関数 / IntegralAtEdge

IntegralAtEdge関数

定義

IntegralAtEdge(Index() As Long, Body() As Long, dir As Boolean, Func As Long, Result As CComplex) As Boolean

戻り値

True   成功
False   失敗

引数

Index()   積分を行う辺トポロジのインデックス配列
辺トポロジが積分方向(下記引数"dir"参照)に沿って、連続かつ分岐しないように指定してください。
インデックスは、Gogh画面のトポロジピック時のツールチップに表示されています。参照図
Body()   辺トポロジを含むBodyのインデックス配列
インデックスは、Gogh画面のツリー又は、Bodyピック時のツールチップに表示されています。参照図
dir   積分時の接線の方向。
辺トポロジの方向と同じ方向で積分する場合はTrue、逆の場合はFalseを指定します。
Func   積分値を計算する被積分Subプロシージャーのアドレス(アドレス取得法
アドレスとはプロシージャーを識別する整数値です。積分Subプロシージャ例はこちら
Result   積分結果

解説

指定した辺トポロジ上で、被積分関数で指定する値の線積分を行います。
指定する辺トポロジは連続かつ分岐しないように指定してください。
辺が重複していたり、交叉しているとエラーとなりFalseが返ります。
MACRO00000114.gif MACRO00000115.gif
MACRO00000116.gif

実行例

Dim Femtet As New CFemtet
Dim EdgeArray(2) As Long
Dim BodyArray(2) As Long
Dim Result As New CComplex

'プロジェクトを開く
If Femtet.LoadProject("C:\test\test.femprj", True) = False Then
    Femtet.ShowLastError
End If

'計算結果を開く
If Femtet.OpenPDT("C:\test\test.pdt") = False Then
    Femtet.ShowLastError
End If

'積分する辺トポロジとその親Bodyの設定
EdgeArray(0) = 1
EdgeArray(1) = 4
EdgeArray(2) = 2

BodyArray(0) = 1
BodyArray(1) = 1
BodyArray(2) = 1

'積分
If Femtet.Gogh.IntegralAtEdge(EdgeArray, BodyArray, True, AddressOf IntegralSub, Result) = False Then
    Femtet.ShowLastError
End If

'結果表示
MsgBox Result.Real, vbInformation, "Real"
MsgBox Result.Imag, vbInformation, "Imag"