スプリッタは、複数の出力ポートにモデラーが指定する割合で材料を送信するために使用されます。これらの割合は、[スプリッタの割合]テーブルで指定されます。テーブルの各行は出力ポートに対応しています。モデラーの各ポートの説明(モデラーのみが使用)と、各ポートに送られる流出材料の割合(0~100)を入力できる列があります。スプリッタが材料を送り出す際には、常に指定された割合で送られます。スプリッタが送ろうとしているすべての材料を送ることができない場合は、他のポートに送る量を減らして、割合が常に同じになるように保ちます。モデラーは、AdjustInputPorts関数を使用して、入力レートとスケール係数を完全に制御します。また、合計出力レートも制御します。ポート出力レートとスケール係数は、必要に応じて、オブジェクト自体が調整されます。下流のオブジェクトがいっぱいになるか、ほぼいっぱいになると、FluidSplitterで送られる材料の量を正しく調整できないことがあります。計算のタイミングによっては、下流のオブジェクトがスプリッタの材料用のスペースを確保できるだけの材料をリリースした場合でも、送ろうとしている材料分のスペースがないとスプリッタが判断することがあります。
FluidBlenderは通常の方法で材料を受け取りますが、材料を送る方法は異なります。ユーザーが[スプリッタの割合]テーブルで指定した割合で材料を送り出します。スプリッタを下流のオブジェクトに接続すると、このテーブルが[プロパティ]ウィンドウに表示されます。テーブルの各行は1つの出力ポートに対応し、説明と割合を示す2つの列を持ちます。説明は、該当するポートに送られる材料を説明するテキスト文字列であり、モデラーの利便性のみを考慮したものでオブジェクトでは使用されません。割合は0から100の間の数値で、該当するポートに送られる流出材料の割合を示します。
スプリッタはティックごとにレートと容量に基づいて、それぞれの下流のオブジェクトに送る材料の量を計算します。下流のオブジェクトのいずれかにスプリッタが計算した量を受け取るだけのスペースがない場合、割合が正しく維持されるように、各ポートに送られる量が減らされます。
各ポートに送る量は常にスプリッタによって制御されているため、モデラーが最大ポートレートや出力ポートのスケール係数にアクセスすることはできません。ただし、オブジェクトの最大出力レートを編集することはできます。ユーザーは入力レートとスケール係数を詳細に制御できます。これらの値は、ティックごとに起動するAdjustInputRates関数を使用して変更できます。これにより、モデルの実行中に入力レートとスケール係数を更新できます。
統計的な目的で、液体スプリッタは、シミュレーション実行中、さまざまな位置で次のいずれかの状態になります。
スプリッタに何も入っていません。
スプリッタには送り出すことができる材料が入っています。
液体スプリッタオブジェクトには、さまざまなプロパティを持つ7つのタブがあります。最後の5つのタブは、ほとんどの液体オブジェクトに共通する標準タブです。これらのタブのプロパティの詳細については、以下を参照してください。
[統計]タブは廃止され、このオブジェクトではサポートされていません。代わりにオブジェクトのクイックプロパティの統計グループを使用します。
残りの2つのタブ([スプリッタ]タブと[割合]タブ)は、液体スプリッタオブジェクトに固有です。これらのタブのプロパティについては、次の2つのセクションで詳しく説明します。
[スプリッタ]タブには次のプロパティがあります。
このオブジェクトがいつでも保持できる液体材料の最大量。
この関数はティックごとに呼び出され、モデル実行中にユーザーが入力レートとスケール係数を変更できるようにします。レートとスケール係数を保持するノードへの参照となっているアクセス変数があります。現在のレート(オブジェクトまたはポート)を読み取るには、getnodenum()コマンドを使用します。レートを変更するには、setnodenum()を使用します。スケール係数を読み取ったり変更したりするには、getnodenum()とsetnodenum()をrank()コマンドとともに使用します。
これらのプロパティは、オブジェクトが上流のオブジェクトから材料を受け取る方法に影響します。
これらのプロパティは、オブジェクトが下流のオブジェクトに材料を送る方法に影響します。
[割合]タブには次のプロパティがあります。
このテーブルの各行は、1つの出力ポートを表します。このウィンドウを開いたときに、オブジェクトが下流のオブジェクトに接続されていないと、これらの行はテーブルに表示されません。モデラーがテーブル内で変更できる列は2つあります。