Springhead
An open source physics engine for virtual reality, haptics and motion generation.
クラス PHFemPorousWOMove
PHFemPorousWOMoveに対する継承グラフ

構成

struct  StateEdge
 
struct  StateFace
 
struct  StateTet
 
struct  StateVertex
 

Public メソッド

 PHFemPorousWOMove (const PHFemPorousWOMoveDesc &desc=PHFemPorousWOMoveDesc(), SceneIf *s=NULL)
 
virtual void Init ()
 
virtual void Step ()
 
void Step (double dt)
 
void InitMatWO ()
 
void InitMatC ()
 
void InitMatPc ()
 
void InitVecF ()
 
void CreateMatWOPcVecF2Local (unsigned tetid)
 
void CreateMatCLocal (unsigned tetid)
 
void CreateVecF1Local (unsigned tetid)
 
void CreateMatVecAll ()
 
void CreateRhoWVecAll ()
 
void CreateRhoOVecAll ()
 
void InitPcVecAll ()
 
void InitTcAll (double temp)
 
void SetTimeStep (double dt)
 
double GetTimeStep ()
 
PTM::TMatrixRow< 4, 4, double > Create44Mat21 ()
 
PTM::TMatrixCol< 4, 1, double > Create41Vec1 ()
 
void UpdateVertexRhoWAll ()
 
void UpdateVertexRhoOAll ()
 
void SetVertexTemp (unsigned vtxid, double temp)
 
void SetVertexTc (unsigned vtxid, double tc)
 
void SetVertexRhoW (unsigned vtxid, double rhow)
 
void SetVertexRhoWInit (unsigned vtxid, double rhowInit)
 
void SetVertexRhoO (unsigned vtxid, double rhoo)
 
void SetVertexRhoOInit (unsigned vtxid, double rhooInit)
 
void SetVertexMw (unsigned vtxid, double mw)
 
void SetVertexMo (unsigned vtxid, double mo)
 
void CalcVertexWOMu (unsigned vtxid)
 
void CalcVertexVolume (unsigned vtxid)
 
void CalcVertexMwo (unsigned vtxid)
 
void CalcVertexSaturation (unsigned vtxid)
 
void CalcVertexPc (unsigned vtxid)
 
void CalcRhoWVecFromVertexMw (unsigned vtxid)
 
double GetVertexTemp (unsigned vtxid)
 
double GetVertexTc (unsigned vtxid)
 
double GetVertexRhoW (unsigned vtxid)
 
double GetVertexRhoWInit (unsigned vtxid)
 
double GetVertexRhoO (unsigned vtxid)
 
double GetVertexRhoOInit (unsigned vtxid)
 
double GetVertexMw (unsigned vtxid)
 
double GetVertexMo (unsigned vtxid)
 
void CalcFaceArea (unsigned faceid)
 
void SetFaceEvaporationRate (unsigned faceid, double evapoRate)
 
void SetFaceSurroundFlux (unsigned faceid, double surroundFlux)
 
void SetFaceVaporPress (unsigned faceid, double vaporPress)
 
void CalcFaceMaxVaporPress (unsigned faceid)
 
void CalcFaceMaxVaporCont (unsigned faceid)
 
double GetFaceArea (unsigned faceid)
 
double GetFaceEvaporationRate (unsigned faceid)
 
double GetFaceSurroundFlux (unsigned faceid)
 
double GetFaceVaporPress (unsigned faceid)
 
double GetFaceMaxVaporPress (unsigned faceid)
 
void CalcTetVolume (unsigned tetid)
 
void CalcTetPorosity (unsigned tetid)
 
void CalcTetWOMu (unsigned tetid)
 
void CalcTetRhoS (unsigned tetid)
 
void SetTetSolidDensity (unsigned tetid, double rhos)
 
void SetTetContractionRate (unsigned tetid, double contRate)
 
double GetTetVolume (unsigned tetid)
 
double GetTetSolidDensity (unsigned tetid)
 
PTM::VMatrixRow< double > inv (PTM::VMatrixRow< double > mat)
 
PTM::VMatrixRow< double > inv2 (PTM::VMatrixRow< double > mat)
 
double GetVtxWaterInTets (Vec3d temppos)
 
double GetVtxOilInTets (Vec3d temppos)
 
double CalcWaterInnerTets (unsigned id, PTM::TVector< 4, double > N)
 
double CalcOilInnerTets (unsigned id, PTM::TVector< 4, double > N)
 
float calcGvtx (std::string fwfood, int pv, unsigned texture_mode)
 
void matWwOut ()
 
void matWoOut ()
 
void matOwOut ()
 
void matOoOut ()
 
void matPcwOut ()
 
void matPcoOut ()
 
void matCOut ()
 
void vecFwAllOut ()
 
void vecFoAllOut ()
 
void vecFwFinalOut ()
 
void vecFoFinalOut ()
 
void vecPcAllOut ()
 
void setGravity (Vec3d g)
 
void vertexDenatProcess (unsigned vtxid)
 
void tetDenatProcess (unsigned vtxid)
 
void outflowOverSaturation (unsigned vtxid)
 
double decideWetValue (unsigned vtxid)
 
double GetVtxSaturation (unsigned vtxid)
 
void decrhoW (double dec)
 
- Public メソッド inherited from PHFemPorousWOMoveDesc
void Init ()
 
void Init ()
 
- Public メソッド inherited from PHFemBase
 SPR_OBJECTDEF_ABST (PHFemBase)
 
void SetPHFemMesh (PHFemMeshNew *m)
 
PHFemMeshNewIfGetPHFemMesh ()
 
int NVertices ()
 
virtual void CompInitialCondition (const VMatrixRd &_M, const VMatrixRd &_K, const VMatrixRd &_C, const VVectord &_f, VVectord &_x, VVectord &_v, VVectord &_a)
 二階の時間積分 _M:質量行列、_K:剛性行列、_C:減衰行列、_f:外力、_dt:積分刻み、_xd:変位、_v:速度 行列版
 
virtual void InitExplicitEuler (const VMatrixRd &_M, VMatrixRd &_MInv)
 
virtual void ExplicitEuler (const VMatrixRd &_MInv, const VMatrixRd &_K, const VMatrixRd &_C, const VVectord &_f, const double &_dt, VVectord &_xd, VVectord &_v)
 
virtual void ImplicitEuler (const VMatrixRd &_M, const VMatrixRd &_K, const VMatrixRd &_C, const VVectord &_f, const double &_dt, VVectord &_xd, VVectord &_v)
 
virtual void InitSimplectic (const VMatrixRd &_M, VMatrixRd &_MInv)
 
virtual void Simplectic (const VMatrixRd &_MInv, const VMatrixRd &_K, const VMatrixRd &_C, const VVectord &_f, const double &_dt, VVectord &_xd, VVectord &_v)
 
virtual void InitNewmarkBeta (const VMatrixRd &_M, const VMatrixRd &_K, const VMatrixRd &_C, const double &_dt, VMatrixRd &_SInv, const double b=1.0/6.0)
 
virtual void NewmarkBeta (const VMatrixRd &_SInv, const VMatrixRd &_K, const VMatrixRd &_C, const VVectord &_f, const double &_dt, VVectord &_xd, VVectord &_v, VVectord &_a, const double b=1.0/6.0)
 
virtual void InitExplicitEuler (const double &_m, double &_sInv)
 1自由度版
 
virtual void ExplicitEuler (const double &_sInv, const double &_k, const double &_c, const double &_f, const double &_dt, double &_x, double &_v)
 
virtual void InitSimplectic (const double &_m, double &_sInv)
 
virtual void Simplectic (const double &_sInv, const double &_k, const double &_c, const double &_f, const double &_dt, double &_x, double &_v)
 
virtual void InitNewmarkBeta (const double &_m, const double &_k, const double &_c, const double &_dt, double &_sInv, const double b=1.0/6.0)
 
virtual void NewmarkBeta (const double &_sInv, const double &_k, const double &_c, const double &_f, const double &_dt, double &_x, double &_v, double &_a, const double b=1.0/6.0)
 
- Public メソッド inherited from SceneObject
virtual void SetScene (SceneIf *s)
 
virtual SceneIfGetScene () const
 
virtual SceneObjectIfCloneObject ()
 
- Public メソッド inherited from NamedObject
 NamedObject (const NamedObject &n)
 
NamedObjectoperator= (const NamedObject &n)
 
virtual const char * GetName () const
 名前の取得
 
virtual void SetName (const char *n)
 名前の設定
 
virtual void SetNameManager (NameManagerIf *s)
 NameManagerを設定
 
virtual NameManagerIfGetNameManager () const
 NameManagerの取得
 
- Public メソッド inherited from Object
 SPR_OBJECTDEF (Object)
 クラス名の取得などの基本機能の実装
 
ObjectIfGetObjectIf ()
 
const ObjectIfGetObjectIf () const
 
virtual void Print (std::ostream &os) const
 デバッグ用の表示
 
virtual void PrintShort (std::ostream &os) const
 
virtual ObjectIfCreateObject (const IfInfo *info, const void *desc)
 オブジェクトの作成
 
virtual size_t NChildObject () const
 子オブジェクトの数
 
virtual ObjectIfGetChildObject (size_t pos)
 子オブジェクトの取得
 
virtual const ObjectIfGetChildObject (size_t pos) const
 
virtual bool AddChildObject (ObjectIf *o)
 子オブジェクトの追加
 
virtual bool DelChildObject (ObjectIf *o)
 子オブジェクトの削除
 
virtual void Clear ()
 すべての子オブジェクトの削除とプロパティのクリア
 
virtual void Loaded (UTLoadContext *)
 ファイルロード後に一度呼ばれる。ノードの設定に使う。 呼び出し順序に依存する処理がしたい場合は、UTLoadHandeler と UTLoadTask を使うと良い。 
 
virtual void Setup ()
 ノードの設定をするための関数
 
virtual bool GetDesc (void *desc) const
 デスクリプタの読み出し(コピー版)
 
virtual void SetDesc (const void *desc)
 デスクリプタの設定
 
virtual const void * GetDescAddress () const
 デスクリプタの読み出し(参照版)
 
virtual size_t GetDescSize () const
 デスクリプタのサイズ
 
virtual bool GetState (void *state) const
 状態の読み出し(コピー版)
 
virtual const void * GetStateAddress () const
 状態の読み出し(参照版)
 
virtual void GetStateR (char *&state)
 状態の再帰的な読み出し
 
virtual void SetState (const void *state)
 状態の設定
 
virtual void SetStateR (const char *&state)
 状態の再帰的な設定
 
virtual bool WriteStateR (std::ostream &fout)
 状態のファイルへの書き出し
 
virtual bool WriteState (std::string fileName)
 
virtual bool ReadStateR (std::istream &fin)
 状態の読み込み
 
virtual bool ReadState (std::string fileName)
 
virtual size_t GetStateSize () const
 状態のサイズ
 
virtual void ConstructState (void *m) const
 メモリブロックを状態型に初期化
 
virtual void DestructState (void *m) const
 状態型をメモリブロックに戻す
 
virtual void DumpObjectR (std::ostream &os, int level=0) const
 メモリデバッグ用。単純にツリーのオブジェクトをファイルにダンプする。
 

Public 変数

double tdt
 
std::vector< StateVertexvertexVars
 
std::vector< StateEdgeedgeVars
 
std::vector< StateFacefaceVars
 
std::vector< StateTettetVars
 
double eps
 
PTM::VMatrixRow< double > keisuW
 
PTM::VMatrixRow< double > keisuWInv
 
PTM::VMatrixRow< double > keisuO
 
PTM::VMatrixRow< double > keisuOInv
 
PTM::VVector< double > uhenW
 
PTM::VVector< double > uhenO
 
PTM::VMatrixRow< double > leftKeisuW
 
PTM::VMatrixRow< double > rightKeisuWWw
 
PTM::VMatrixRow< double > rightKeisuWWo
 
PTM::VMatrixRow< double > rightKeisuWFw
 
PTM::VMatrixRow< double > rightKeisuWFo
 
PTM::VMatrixRow< double > leftKeisuO
 
PTM::VMatrixRow< double > rightKeisuOWw
 
PTM::VMatrixRow< double > rightKeisuOWo
 
PTM::VMatrixRow< double > rightKeisuOFw
 
PTM::VMatrixRow< double > rightKeisuOFo
 
std::ofstream matWwAllout
 
std::ofstream matOwAllout
 
std::ofstream matWoAllout
 
std::ofstream matOoAllout
 
std::ofstream matCAllout
 
std::ofstream matPcwAllout
 
std::ofstream matPcoAllout
 
std::ofstream vecFwAllout
 
std::ofstream vecFoAllout
 
std::ofstream checkRhoWVecAllout
 
std::ofstream checkRhoOVecAllout
 
std::ofstream FEMLOG
 
std::ofstream keisuWLog
 
std::ofstream keisuOLog
 
std::ofstream invCheck
 
std::ofstream wAll
 
std::ofstream oAll
 
std::ofstream SAll
 
std::ofstream topS
 
std::ofstream sideS
 
std::ofstream bottomS
 
std::ofstream internalS
 
std::ofstream topOutflowWater
 
std::ofstream topOutflowOil
 
std::ofstream sideOutflowWater
 
std::ofstream sideOutflowOil
 
std::ofstream bottomOutflowWater
 
std::ofstream bottomOutflowOil
 
std::ofstream PcAll
 
std::ofstream tempAll
 
std::ofstream paramout
 
std::ofstream tempAndWater
 
unsigned long long COUNT
 
unsigned long StepCount
 
unsigned long StepCount_
 
unsigned Ndt
 dtを定数倍する
 
double dNdt
 
double initSolidMass
 
std::vector< unsigned > topVertices
 
std::vector< unsigned > sideVertices
 
std::vector< unsigned > bottomVertices
 
std::vector< unsigned > internalVertices
 
- Public 変数 inherited from PHFemPorousWOMoveDesc
double wDiffAir
 
double K
 
double kc
 
double kp
 
double alpha
 
double gamma
 
double rhoWater
 
double rhoOil
 
double rhowInit
 
double rhooInit
 
double evapoRate
 
double denatTemp
 
double boundWaterRatio
 
double equilWaterCont
 
double limitWaterCont
 
double boundaryThick
 
double initMassAll
 
double initWaterRatio
 
double initOilRatio
 
double shrinkageRatio
 
Vec3d top
 
Vec3d center
 
Vec3d bottom
 
- Public 変数 inherited from PHFemBase
 SPR_DECLMEMBEROF_PHFemBaseDesc
 

Protected メソッド

double CalcTriangleArea (int id0, int id1, int id2)
 
double CalcTetrahedraVolume (FemTet tet)
 
void CalcWOContentDirect (double dt, double eps)
 
void CalcWOContentDirect2 (double dt, double eps)
 
void CalcWOContentUsingGaussSeidel (unsigned NofCyc, double dt, double eps)
 
void CalcWOContentUsingScilab (double dt)
 
void SetRhoWAllToRhoWVecAll ()
 
void SetRhoOAllToRhoOVecAll ()
 
void InitAllVertexRhoW ()
 
void InitAllVertexRhoO ()
 
- Protected メソッド inherited from NamedObject
virtual void PrintHeader (std::ostream &os, bool bClose) const
 開き括弧
 
- Protected メソッド inherited from Object
virtual void PrintChildren (std::ostream &os) const
 子オブジェクトをPrint
 
virtual void PrintFooter (std::ostream &os) const
 閉じ括弧
 
virtual void BeforeGetDesc () const
 GetDesc()の前に呼ばれる
 
virtual void AfterSetDesc ()
 SetDesc()のあとに呼ばれる
 

Protected 変数

PTM::TVector< 4, double > rhoWVecEle
 
PTM::VMatrixRow< double > rhoWVecAll
 
PTM::TVector< 4, double > rhoOVecEle
 
PTM::VMatrixRow< double > rhoOVecAll
 
PTM::TVector< 4, double > PcEle
 
PTM::VMatrixRow< double > PcVecAll
 
PTM::VMatrixRow< double > matWwAll
 
PTM::VMatrixRow< double > matOwAll
 
PTM::VMatrixRow< double > matWoAll
 
PTM::VMatrixRow< double > matOoAll
 
PTM::VMatrixRow< double > matCAll
 
PTM::VMatrixRow< double > matPcwAll
 
PTM::VMatrixRow< double > matPcoAll
 
PTM::VMatrixRow< double > vecFwAll
 
PTM::VMatrixRow< double > vecFoAll
 
PTM::VMatrixRow< double > vecFwFinal
 
PTM::VMatrixRow< double > vecFoFinal
 
PTM::VMatrixRow< double > dMatWwAll
 
PTM::VMatrixRow< double > dMatOwAll
 
PTM::VMatrixRow< double > dMatWoAll
 
PTM::VMatrixRow< double > dMatOoAll
 
PTM::VMatrixRow< double > dMatCAll
 
PTM::VMatrixRow< double > _dMatWAll
 
PTM::VMatrixRow< double > _dMatOAll
 
PTM::VMatrixCol< double > bwVecAll
 
PTM::VMatrixCol< double > boVecAll
 
PTM::TMatrixRow< 4, 4, double > matk1array [4]
 
PTM::TMatrixRow< 4, 4, double > matk2array [4]
 
PTM::TMatrixRow< 4, 4, double > matCTemp
 
PTM::TVector< 4, double > vecFarray [4]
 
PTM::VMatrixRow< double > idMat
 
PTM::TMatrixRow< 1, 1, double > dtMat
 
Vec3d gravity
 
bool doCalc
 
bool matWOPcVecF2Changed
 
bool matCChanged
 
bool vecFChanged
 
bool matVecChanged
 
bool keisuChanged
 
- Protected 変数 inherited from PHFemBase
PHFemMeshNewphFemMesh
 
- Protected 変数 inherited from NamedObject
UTString name
 名前
 
NameManagernameManager
 名前の検索や重複管理をするもの.SceneやSDKなど.
 

Additional Inherited Members

- Public 型 inherited from PHFemBase
typedef VVector< double > VVectord
 
typedef VMatrixRow< double > VMatrixRd
 
- Static Protected メソッド inherited from Object
static void ConstructState (ObjectIf *o, char *&s)
 sをoのStateとして初期化する.
 
static void DestructState (ObjectIf *o, char *&s)
 sをoのStateからメモリブロックに戻す.
 

このクラスの説明は次のファイルから生成されました: