|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectohymosj.OhObject
ohymosj.OhElement
ohymosj.PowerLawKinematicWave
PowerLawKinematicWave;
Power Law Kinematic Wave model for Stream Flow.
河道区間の流れを指数法則 kinematic wave 法で追跡します。
ここで、河道区間とはその内部に合流点を持たない1本の河道区間のことをいいます。
流量 Q は、通水断面積 A の指数関数 a*A^m で表現できるものとします。
フィールドの概要 | |
protected double |
_a
Parameter: kinematic constant a [m/sec] in Q = a*A^m |
protected double[] |
_cLateralIn
Parameter: _cLateralIn[i] is a multiplication factor [-] to the i-th lateral inflow port _rpLateralIn[i]. |
protected double[] |
_cUpIn
Parameter: _cUpIn[i] is a multiplication factor [-] to the i-th inflow port from upstream end, _rpUpIn[i]. |
protected int |
_dt
Parameter: time step [sec] for finite difference calculation. |
protected double |
_dx
Working variable: length of the division. |
protected double |
_epsilon
Parameter: tolerance level of diffrence of two consecutive caluculated discharges to stop the iteration. |
protected InitialStateDataType |
_isdt
|
protected double |
_lengthOfStream
Parameter: length of the stream segment. |
protected double |
_m
Parameter: kinematic constant m [-] in Q = a*A^m |
protected int |
_numOfLateralIn
Structural variable: number of lateral inflows. |
protected int |
_numOfSepStream
Parameter: number of divisions of the stream. [-] |
protected int |
_numOfUpIn
Structural variable: number of inflows from the upstream ends. |
protected double[] |
_qCrnt
State variable: discharge Q [m^3/sec] ( = q * w) at current time. |
protected double |
_qLevel
Parameter: tolerance level of diffrence of two consecutive caluculated discharges to stop the iteration. |
protected double[] |
_qNext
Working variable: discharge Q [m^3/sec] at next time. |
protected OhReceiveDouble[] |
_rpLateralIn
lateral inflow ports. |
protected OhReceiveDouble[] |
_rpUpIn
inflow ports from the upstream end. |
protected OhSendDouble |
_sp
Send port. |
protected double |
_theta
Parameter: time weighting parameter [-]. |
クラス ohymosj.OhElement から継承したフィールド |
_calReqP, _currentTime, _dataString, _fixedTime, _initialWorkDoneP, _numberOfObjects, _numberOfReceivePorts, _numberOfSendPorts, _objectArray, _objectList, _receivePortArray, _sendPortArray, _shareInfoDoneP, _targetTime, _timeStep |
クラス ohymosj.OhObject から継承したフィールド |
_className, _objectName, _objectNumber, _owner, NEWLINE |
コンストラクタの概要 | |
PowerLawKinematicWave()
Creates a new default PowerLawKinematicWave instance. |
|
PowerLawKinematicWave(java.lang.String aObjName,
int aObjNum,
java.lang.String aDataStr,
int aNumOfUpIn,
int aNumOfLateralIn)
Creates a new SimpleDam instance.
|
メソッドの概要 | |
boolean |
calculate()
The solution of power law kimematic wave model by Keith Beven's method. |
long |
calculateTimeStep()
|
boolean |
canYouCalculate()
|
boolean |
init(java.lang.String aObjName,
int aObjNum,
OhBufferedReader aBr)
Initialization. |
boolean |
init(java.lang.String aObjName,
int aObjNum,
java.lang.String aDataStr,
int aNumOfUpIn,
int aNumOfLateralIn)
Initialization. |
boolean |
initialOutput()
|
void |
registerReceivePorts()
|
void |
registerSendPorts()
|
void |
saveTerminalState(java.io.PrintWriter aPw)
|
void |
setInitialState(OhBufferedReader aBr)
|
void |
setParameter(OhBufferedReader aBr)
|
boolean |
work()
|
クラス ohymosj.OhObject から継承したメソッド |
cPrint, getAbsName, getClassName, getObjectName, getObjectNumber, getOwner, getTopOwner, objCompare, objCompare, objCompare, oPrint, setOwner |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
protected int _numOfUpIn
protected int _numOfLateralIn
protected OhReceiveDouble[] _rpUpIn
protected OhReceiveDouble[] _rpLateralIn
protected OhSendDouble _sp
送信端子は1個です。 得られるデータは OhDataPackDouble 型です。 データ補間型は DataConnectionType.BROKENLINE です。
河道下流端からの流出量が得られます。 計算された流出量の次元は [m^3/sec] です。
protected double _a
Q = a*A^m
protected double _m
Q = a*A^m
protected double _lengthOfStream
河道区間の長さ。[m]
protected int _numOfSepStream
河道区間を等分した数。[-]
protected int _dt
計算時間間隔。[sec]
このモデルでは固定値として扱います。
protected double _theta
protected double _epsilon
protected double _qLevel
protected double[] _cUpIn
protected double[] _cLateralIn
protected double[] _qCrnt
protected double _dx
_dx = _lengthOfStream / _numOfSepStream
protected double[] _qNext
protected InitialStateDataType _isdt
Supplemental variable for setting initial state.
コンストラクタの詳細 |
public PowerLawKinematicWave()
PowerLawKinematicWave
instance.
OhError
- if an error occurspublic PowerLawKinematicWave(java.lang.String aObjName, int aObjNum, java.lang.String aDataStr, int aNumOfUpIn, int aNumOfLateralIn) throws OhError
SimpleDam
instance.
Uses init(String, int, String, int, int).
aObjName
- a String
valueaObjNum
- an int
valueaDataStr
- a String
valueaNumOfUpIn
- an int
valueaNumOfLateralIn
- an int
value
OhError
- if an error occursメソッドの詳細 |
public boolean init(java.lang.String aObjName, int aObjNum, OhBufferedReader aBr) throws OhError
Uses init(String, int, String, int, int).
OhElement
内の init
aObjName
- a String
valueaObjNum
- an int
valueaBr
- an OhBufferedReader
value
boolean
value
OhError
- if an error occurspublic boolean init(java.lang.String aObjName, int aObjNum, java.lang.String aDataStr, int aNumOfUpIn, int aNumOfLateralIn) throws OhError
Uses OhElement.init(String, int, int, String).
aObjName
- a String
valueaObjNum
- an int
valueaDataStr
- a String
valueaNumOfUpIn
- an int
valueaNumOfLateralIn
- an int
value
boolean
value
OhError
- if an error occurspublic void registerReceivePorts() throws OhError
このメソッドは、この要素モデルが持つすべての受信端子を OhElement.register(Object) OhElement.register(Object, int) により登録します。
登録されていない端子は接続できないので送受信に利用できません。
OhElement
内の registerReceivePorts
OhError
- if an error occurspublic void registerSendPorts() throws OhError
このメソッドは、この要素モデルが持つすべての送信端子を OhElement.register(Object) OhElement.register(Object, int) により登録します。
登録されていない端子は接続できないので送受信に利用できません。
OhElement
内の registerSendPorts
OhError
- if an error occurspublic void setParameter(OhBufferedReader aBr) throws OhError
入力ストリーム aBr で指定されるファイルからデータを読みとってパラメタを設定します。
OhElement
内の setParameter
aBr
- an OhBufferedReader
value
OhError
- if an error occurspublic void setInitialState(OhBufferedReader aBr) throws OhError
入力ストリーム aBr で指定されるファイルからデータを読みとって初期状態量を設定します。
OhElement
内の setInitialState
aBr
- an OhBufferedReader
value
OhError
- if an error occurspublic boolean initialOutput() throws OhError
OhElement
の記述: 初期状態量を決めた直後に、_currentTime での出力を定義します。 送信端子に時刻と出力値を書き込みます。 _currnetTime での出力が計算できた場合は true を返します。 必要な入力データが得られていないなどして、 _currentTime の出力が計算できなかった場合は false を返します。
要素によっては、setInitialState() の中で 初期の出力をするようにした方が都合がよいかも知れません。 たとえば、初期値設定のために与えられる文字列によって、 初期の出力のやり方を変えたりする場合などです。 そうした場合は、initialOutput() は何もしないように定義して、 setInitialState() で初期の出力をするように定義しても構いません。
An initial output. In classes derived from class Element, its definition should be given.
The output in "_currentTime" is defined immediately after deciding the amount of initial states. Time and an output value are written in a sending port. "true" is returned when the output in "_currentTime" is able to be calculated. "false" is returned when the output of "_currentTime" is not able to be calculated by required input data not being obtained.
OhElement
内の initialOutput
boolean
value
OhError
- if an error occurspublic void saveTerminalState(java.io.PrintWriter aPw)
OhElement
内の saveTerminalState
aPw
- a PrintWriter
valuepublic long calculateTimeStep() throws OhError
OhElement
内の calculateTimeStep
long
value
OhError
- if an error occurspublic boolean canYouCalculate() throws OhCannotGetDataError, OhError
OhElement クラスの メソッド OhElement.getNecessaryTimeFrom(), OhElement.getNecessaryTimeTo() で 定義される時間の間のデータが取得できれば計算可能と判断します。 OhElement.getNecessaryTimeFrom() メソッドは _currentTime を返し、 OhElement.getNecessaryTimeTo() メソッドは _currentTime + _timeStep の値を返します。
データが取得不可能であると返事をしてきた受信端子に対して計算要求を出します。 具体的には、受信端子に calReq() メッセージを送ります。
OhElement
内の canYouCalculate
boolean
value
OhCannotGetDataError
- if an error occurs
OhError
- if an error occurspublic boolean calculate() throws OhError
Beven 法による指数法則 kinematic wave モデルの解法
OhElement
内の calculate
boolean
value
OhError
- if an error occurspublic boolean work() throws OhCannotGetDataError, OhError
_timeStep を得てから calculate() を実行する work0() を採用します。
OhElement
内の work
boolean
value
OhCannotGetDataError
- if an error occurs
OhError
- if an error occurs
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |