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

Public 型

typedef double element_type
 
typedef VMatrixRow< element_type > VMatrixRe
 
typedef VVector< double > VVectord
 
- Public 型 inherited from PHFemVibrationDesc
enum  ANALYSIS_MODE { ANALYSIS_DIRECT, ANALYSIS_MODAL, ANALYSIS_DIRECT, ANALYSIS_MODAL }
 
enum  INTEGRATION_MODE {
  INT_EXPLICIT_EULER, INT_IMPLICIT_EULER, INT_SIMPLECTIC, INT_NEWMARK_BETA,
  INT_EXPLICIT_EULER, INT_IMPLICIT_EULER, INT_SIMPLECTIC, INT_NEWMARK_BETA
}
 
enum  ANALYSIS_MODE { ANALYSIS_DIRECT, ANALYSIS_MODAL, ANALYSIS_DIRECT, ANALYSIS_MODAL }
 
enum  INTEGRATION_MODE {
  INT_EXPLICIT_EULER, INT_IMPLICIT_EULER, INT_SIMPLECTIC, INT_NEWMARK_BETA,
  INT_EXPLICIT_EULER, INT_IMPLICIT_EULER, INT_SIMPLECTIC, INT_NEWMARK_BETA
}
 
- Public 型 inherited from PHFemBase
typedef VVector< double > VVectord
 
typedef VMatrixRow< double > VMatrixRd
 

Public メソッド

 SPR_OBJECTDEF (PHFemVibration)
 
 ACCESS_DESC (PHFemVibration)
 
 PHFemVibration (const PHFemVibrationDesc &desc=PHFemVibrationDesc())
 
virtual void Init ()
 初期化
 
virtual void CompStiffnessMatrix ()
 
virtual void CompMassMatrix ()
 
virtual void CompRayleighDampingMatrix ()
 
virtual void CompRayleighDampingMatrixByDampingRatio ()
 
virtual void Step ()
 シミュレーションステップ
 
virtual void InitNumericalIntegration (const VMatrixRe &_M, const VMatrixRe &_K, const VMatrixRe &_C, const double &_dt, VMatrixRe &_SInv)
 
virtual void NumericalIntegration (const VMatrixRe &_M, const VMatrixRe &_K, const VMatrixRe &_C, const VVectord &_f, const double &_dt, VVectord &_xd, VVectord &_v, VVectord &_a)
 
virtual void InitNumericalIntegration (const double &_m, const double &_k, const double &_c, const double &_dt, double &_sInv)
 
virtual void NumericalIntegration (const double &_sInv, const double &_k, const double &_c, const double &_f, const double &_dt, double &_x, double &_v, double &_a)
 
virtual void ModalAnalysis (const VMatrixRe &_M, const VMatrixRe &_K, const VMatrixRe &_C, const VVectord &_f, const double &_dt, bool &bFirst, VVectord &_xd, VVectord &_v, VVectord &_a, const int nmode)
 
virtual void InitModalAnalysis (const VMatrixRe &_M, const VMatrixRe &_K, const VMatrixRe &_C, const VVectord &_f, const double &_dt, bool &bFirst, VVectord &_xd, VVectord &_v, VVectord &_a, const int nmode)
 
virtual void CompEigenValue (const VMatrixRd &_M, const VMatrixRd &_K, const int start, const int interval, VVectord &e, VMatrixRd &v)
 固有値解析(Kx = lamda M x)を解く
 
virtual void CompEigenVibrationFrequency (const VVectord &e, VVectord &w)
 
virtual void CompEigenAngularVibrationFrequency (const VVectord &e, VVectord &wrad)
 
double CompModalDampingRatio (double wrad)
 
void CompRayleighDampingCoeffcient (double wrad[2], double ratio[2], double &a, double &b)
 
virtual void SubSpace (const VMatrixRe &_K, const VMatrixRe &_M, const int nmode, const double epsilon, VVectord &e, VMatrixRe &v)
 
void SetTimeStep (double dt)
 各種設定、計算
 
double GetTimeStep ()
 
void SetYoungModulus (double value)
 
double GetYoungModulus ()
 
void SetPoissonsRatio (double value)
 
double GetPoissonsRatio ()
 
void SetDensity (double value)
 
double GetDensity ()
 
void SetAlpha (double value)
 
double GetAlpha ()
 
void SetBeta (double value)
 
double GetBeta ()
 
void SetBoundary (int value)
 
std::vector< int > GetBoundary ()
 
void ClearBoundary ()
 
void SetbRecomp ()
 
void SetAnalysisMode (PHFemVibrationDesc::ANALYSIS_MODE mode)
 
void SetIntegrationMode (PHFemVibrationDesc::INTEGRATION_MODE mode)
 
void GetVerticesDisplacement (VVectord &_xd)
 
void UpdateVerticesPosition (VVectord &_xd)
 
void UpdateVerticesVelocity (VVectord &_v)
 
std::vector< int > FindVertices (const int vtxId, const Vec3d _vecl)
 
bool AddBoundaryCondition (VMatrixRe &mat, const int id)
 
bool AddBoundaryCondition (const int vtxId, const Vec3i dof)
 
void DeleteBoundaryCondition ()
 
bool AddBoundaryCondition (const std::vector< Vec3i > &bcs)
 
void ReduceMatrixSize (VMatrixRe &mat, const VVector< int > &bc)
 
void ReduceMatrixSize (VMatrixRe &_M, VMatrixRe &_K, VMatrixRe &_C, const VVector< int > &bc)
 
void ReduceVectorSize (VVectord &r, const VVector< int > &bc)
 
void ReduceVectorSize (VVectord &_xd, VVectord &_v, VVectord &_a, VVectord &_f, const VVector< int > &bc)
 
void AssignVector (const VVectord &from, VVectord &to, const VVector< int > &bc)
 
bool AddVertexForceL (int vtxId, Vec3d fL)
 
bool AddVertexForceW (int vtxId, Vec3d fW)
 
bool AddVertexForceW (std::vector< Vec3d > fWs)
 
bool AddForce (int tetId, Vec3d posW, Vec3d fW)
 
bool SetDamping (int tetId, Vec3d posW, double damp_ratio)
 
bool SetDampingRatio ()
 
bool GetDisplacement (int tetId, Vec3d posW, Vec3d &disp, bool bDeform)
 
bool GetVelocity (int tetId, Vec3d posW, Vec3d &vel, bool bDeform)
 
bool GetPosition (int tetId, Vec3d posW, Vec3d &pos, bool bDeform)
 
bool FindClosestPointOnMesh (const Vec3d &posW, const Vec3d pos[3], Vec3d &cp, double &dist, bool bDeform)
 実装中
 
bool FindNeighborFaces (Vec3d posW, std::vector< int > &faceIds, std::vector< Vec3d > &cpWs, bool bDeform)
 ある点から近い面と面上の点を探す
 
bool FindNeighborTetrahedron (Vec3d posW, int &tetId, Vec3d &cpW, bool bDeform)
 ある点から近い四面体と四面体上の点を探す
 
void MatrixFileOut (VMatrixRe mat, std::string filename)
 行列のファイル出力
 
bool searchSurfaceTetra (Vec3d commonPointW, Vec3d contactNormalU, int &faceId, Vec3d &surfacePoint, bool bDeform)
 
bool GetVertexMass (int vertexId, double &returnMass, bool bDeform)
 Gets the tetrahedra mass using the mass matrix.
 
int getReducedIndex (int vertexId)
 Convertex the vertexID into a reduced one for the reduced matrix.
 
bool GetInstantPosition (int vertexId, Vec3d &returnPosL)
 Gets the position directly from the matrix.
 
bool GetInstantVelocity (int vertexId, Vec3d &returnVelL)
 Gets the velocity directly from the matrix.
 
bool GetInstantAcceleration (int vertexId, Vec3d &returnAccelL)
 Gets the acceleration directly from the matrix.
 
bool AddForceL (int tetId, Vec3d posW, Vec3d fL)
 AddForce using local coordinates (should be also modified)
 
bool TestPointTriangle (Vec3d fp[3], Vec3d c)
 This rutines are for the Barycentric Method to match faces and vertices.
 
void Barycentric (Vec3d fp[3], Vec3d &p, double &u, double &v, double &w)
 
double TriArea2D (double x1, double y1, double x2, double y2, double x3, double y3)
 
- 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 vdt
 
PHFemVibrationDesc::ANALYSIS_MODE analysis_mode
 
PHFemVibrationDesc::INTEGRATION_MODE integration_mode
 
bool bRecomp
 
VMatrixRe matKIni
 
VMatrixRe matMIni
 
VMatrixRe matCIni
 
VVectord xdl
 
VVectord vl
 
VVectord al
 
VVectord fl
 
VMatrixRe matKp
 
VMatrixRe matMp
 
VMatrixRe matCp
 
VVectord xdlp
 
VVectord vlp
 
VVectord alp
 
VVectord flp
 
VVectord q
 
VVectord qv
 
VVectord qa
 
VVectord qf
 
VVectord evalue
 
VMatrixRe evector
 
VVectord ewrad
 
VMatrixRe Mm
 
VMatrixRe Km
 
VMatrixRe Cm
 
VMatrixRe SmInv
 
double dampingRatio [2]
 
int nMode
 
VVector< int > boundary
 
- Public 変数 inherited from PHFemVibrationDesc
double young
 ヤング率(Pa, N/m2)
 
double poisson
 ポアソン比(*一様な立方体の場合、-1 <= v <= 0.5)
 
double density
 密度(kg/m3)
 
double alpha
 粘性減衰率
 
double beta
 構造減衰率
 
std::vector< int > fixedVertices
 固定頂点のIDs
 
- Public 変数 inherited from PHFemBase
 SPR_DECLMEMBEROF_PHFemBaseDesc
 

Additional Inherited Members

- 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()のあとに呼ばれる
 
- 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からメモリブロックに戻す.
 
- Protected 変数 inherited from PHFemBase
PHFemMeshNewphFemMesh
 
- Protected 変数 inherited from NamedObject
UTString name
 名前
 
NameManagernameManager
 名前の検索や重複管理をするもの.SceneやSDKなど.
 

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