![]() |
Springhead
An open source physics engine for virtual reality, haptics and motion generation.
|

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) |
| PHFemMeshNewIf * | GetPHFemMesh () |
| 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 SceneIf * | GetScene () const |
| virtual SceneObjectIf * | CloneObject () |
Public メソッド inherited from NamedObject | |
| NamedObject (const NamedObject &n) | |
| NamedObject & | operator= (const NamedObject &n) |
| virtual const char * | GetName () const |
| 名前の取得 | |
| virtual void | SetName (const char *n) |
| 名前の設定 | |
| virtual void | SetNameManager (NameManagerIf *s) |
| NameManagerを設定 | |
| virtual NameManagerIf * | GetNameManager () const |
| NameManagerの取得 | |
Public メソッド inherited from Object | |
| SPR_OBJECTDEF (Object) | |
| クラス名の取得などの基本機能の実装 | |
| ObjectIf * | GetObjectIf () |
| const ObjectIf * | GetObjectIf () const |
| virtual void | Print (std::ostream &os) const |
| デバッグ用の表示 | |
| virtual void | PrintShort (std::ostream &os) const |
| virtual ObjectIf * | CreateObject (const IfInfo *info, const void *desc) |
| オブジェクトの作成 | |
| virtual size_t | NChildObject () const |
| 子オブジェクトの数 | |
| virtual ObjectIf * | GetChildObject (size_t pos) |
| 子オブジェクトの取得 | |
| virtual const ObjectIf * | GetChildObject (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 | |
| PHFemMeshNew * | phFemMesh |
Protected 変数 inherited from NamedObject | |
| UTString | name |
| 名前 | |
| NameManager * | nameManager |
| 名前の検索や重複管理をするもの.SceneやSDKなど. | |