org.mklab.nfc.dae
インタフェース DasslProblem


public interface DasslProblem

DASSLの問題を表現するインターフェースです。

バージョン:
$Revision$, 2010/02/12
作成者:
koga

メソッドの概要
 void feval(int neqn, double t, double[] y, double[] yprime, double[] f, int[] ierr, double[] rpar, int[] ipar)
          関数fの計算
 double[] getExpectedSolution(int neqn, double t)
          期待される解を返します。
 String getFullnm()
          問題の完全名を返します。
 int[] getInd()
          変数の指数を返します。
 int getMljac()
          ヤコビ行列(df/dy)の非零の下対角成分の数を返します。
 int getMlmas()
          行列(df/dy')の非零の下対角成分の数を返します。
 int getMujac()
          ヤコビ行列(df/dy)の非零の上対角成分の数を返します。
 int getMumas()
          行列(df/dy')の非零の上対角成分の数を返します。
 int getNumberOfEquation()
          方程式の数を返します。
 int getPidate()
          ソルバーのバージョン番号を返します。
 String getProblm()
          問題の簡易名を返します。
 String getType()
          問題の型を返します。
 void init(int neqn, double t, double[] y, double[] yprime, boolean[] consis)
          初期化関数
 boolean isNumjac()
          ヤコビ行列(df/dy)を数値的に計算するか判定します。
 boolean isNummas()
          行列(df/dy')を数値的に計算するか判定します。
 void jeval(int ldim, int neqn, double t, double[] y, double[] yprime, double[][] dfdy, int[] ierr, double[] rpar, int[] ipar)
          ヤコビ行列の計算
 void meval(int ldim, int neqn, double t, double[] y, double[] yprime, double[][] dfddy, int[] ierr, double[] rpar, int[] ipar)
           
 

メソッドの詳細

init

void init(int neqn,
          double t,
          double[] y,
          double[] yprime,
          boolean[] consis)
初期化関数

パラメータ:
neqn - 問題の次数
t - 時刻
y - 方程式の解
yprime - yの導関数
consis - 初期値の整合性を判定する変数

feval

void feval(int neqn,
           double t,
           double[] y,
           double[] yprime,
           double[] f,
           int[] ierr,
           double[] rpar,
           int[] ipar)
関数fの計算

パラメータ:
neqn - 問題の次数
t - 時刻
y - 方程式の数
yprime - yの導関数
f - 関数
ierr - メソッド呼び出しが正しく実行されたかの判定を行う変数
rpar - driverとの連結のための浮動小数点配列
ipar - driverとの連結のための整数配列

jeval

void jeval(int ldim,
           int neqn,
           double t,
           double[] y,
           double[] yprime,
           double[][] dfdy,
           int[] ierr,
           double[] rpar,
           int[] ipar)
ヤコビ行列の計算

パラメータ:
ldim - 行列の次数
neqn - 問題の次数
t - 時刻
y - 方程式の数
yprime - yの導関数
dfdy - df/dy
ierr - メソッド呼び出しが正しく実行されたかの判定を行う変数
rpar - driverとの連結のための浮動小数点配列
ipar - driverとの連結のための整数配列

meval

void meval(int ldim,
           int neqn,
           double t,
           double[] y,
           double[] yprime,
           double[][] dfddy,
           int[] ierr,
           double[] rpar,
           int[] ipar)
パラメータ:
ldim - length of dimension
neqn - 問題の次数
t - 時刻
y - yの値
yprime - yの導関数
dfddy - df/ddy)
ierr - メソッド呼び出しが正しく実行されたかの判定を行う変数
rpar - driverとの連結のための浮動小数点配列
ipar - driverとの連結のための整数配列

getExpectedSolution

double[] getExpectedSolution(int neqn,
                             double t)
期待される解を返します。

パラメータ:
neqn - 問題の次数
t - 時刻
戻り値:

getPidate

int getPidate()
ソルバーのバージョン番号を返します。

戻り値:
ソルバーのバージョン番号

getFullnm

String getFullnm()
問題の完全名を返します。

戻り値:
問題の完全名

getProblm

String getProblm()
問題の簡易名を返します。

戻り値:
問題の簡易名

getType

String getType()
問題の型を返します。

戻り値:
問題の型

getNumberOfEquation

int getNumberOfEquation()
方程式の数を返します。

戻り値:
方程式の数

isNumjac

boolean isNumjac()
ヤコビ行列(df/dy)を数値的に計算するか判定します。

戻り値:
ヤコビ行列(df/dy)を数値的に計算するならばtrue、解析的に計算するならばfalse

isNummas

boolean isNummas()
行列(df/dy')を数値的に計算するか判定します。

戻り値:
行列(df/dy')を数値的に計算するならばtrue、解析的に計算するならばfalse

getInd

int[] getInd()
変数の指数を返します。 変数iの指数は[i]に入っています。

戻り値:
変数の指数を返します。

getMljac

int getMljac()
ヤコビ行列(df/dy)の非零の下対角成分の数を返します。 もしヤコビ行列(df/dy)が帯行列でなければmljac=neqnです。

戻り値:
ヤコビ行列(df/dy)の非零の下対角成分の数

getMujac

int getMujac()
ヤコビ行列(df/dy)の非零の上対角成分の数を返します。 もしヤコビ行列(df/dy)が帯行列でなければmujac=neqnです。

戻り値:
ヤコビ行列(df/dy)の非零の上対角成分の数

getMlmas

int getMlmas()
行列(df/dy')の非零の下対角成分の数を返します。 もしビ行列(df/dy')が帯行列でなければmlmas=neqnです。

戻り値:
行列(df/dy')の非零の下対角成分の数

getMumas

int getMumas()
行列(df/dy')の非零の上対角成分の数を返します。 行列(df/dy')が帯行列でなければmumas=neqnです。

戻り値:
行列(df/dy')の非零の上対角成分の数