LsdynaSession

Inherited from XSession,

Inherited by NULL

Friend class NULL

Description

LsdynaSession类用于读取LsDyna的结果重建结果模型,根据几何和拓扑关系识别碎片特征,根据粒子点云的坐标重建包络空间的几何外形,并提取相关数据进行分析计算获取特征参数。

Members

Public interface

Private interface


XDocument * m_pDoc

会话所属的文档对象

XModel * m_pRefMdl

原始模型

XModel * m_pRltMdl

结果模型

XMemPool * m_pSessionMem

会话内存空间

MaterialManager * m_pMats

材料对象管理器

MaterialEntryManager * m_pMatEntry

材料子项管理器

XMap * m_pMatPartMap

XHash<ElemData> m_pElemDatas

XHash<NodeData> m_pNodeDatas

XHash<PartVelocityData> m_pEKVParts

const XGeometry * m_pPlateCurveFace

Vector3r m_interceptDir

Vector3r m_targetTop

Vector3r m_targetAxis

Vector3r m_EKVelocity

ulong m_ulStartSphID

vector<XPoint> m_pParticles

unordered_set<string> m_pCases

FeatureCylinder * m_pInterceptCyl


LsdynaSession(XDocument * doc = 0)

~LsdynaSession()

void init(XDocument * doc)

static const char * name()

const char * getName() const

void readKModel(const char * kFile)

void readResult(const char * rFile)

void exportDebrisParam(const char * dFile, IMainFrame * uiFrame, bool bTarget)

void exportModelParam(const char * dFile, bool bExistTargetAxis = true)

void exportModelDamage(const char * dFile)

void exportDebrisCloudFeature(const char * dFile)

void exportSph(int stID, const char * fname)

bool isModelReady() const

int readCases(vector<string> * cases)

void appendCase(const char * caseName)

void exportModelDamage_Cubic(const char * dFile)

void clear()


void updateElemData()

void updateEKVParts(Vector3r * v)

Vector3r calcElemVelocity(const XElement* el)

double calcElemPressure(const XElement* el)

double calcFramentPressure(const XSolid * s)

double calcProjectArea(const XSolid * s, const double * x, const double * y, const double *dir, const double * center)

double calcProjectAreaGPU(const XSolid * s, const XObBox * obb, int axis, IMainFrame * gpuFrame)

void createShapeCurveFace(XGeometry * shapeFace)

bool isBrokenFacet(const XElement * rElem)

void calcInterceptInclinedCone(FeatureInclinedCone * fInclinedCone)

void calcInterceptCylinder(FeatureCylinder * fCyl)

double calcCylinderPath(const double * zAxis, vector<const XNode*> * damageNodes, double * center)

void findTargetAxis()

bool calcCylDamageOnPart(ulong pid, PartDamage * damage)

bool calcConeDamageOnPart(ulong pid, FeatureInclinedCone * cone, PartDamage * damage)

void calcDebrisCloudFeature(DebrisFeature * fet)

void collectValidParticles(vector<XPoint> * particles)

void collectInvalidElements(const XPart * p, vector<const XElement *> * els, vector<const XElement *> * maxRegion)

void collectInvalidNodesFromSeed(const XNode * seedNode, vector<const XNode*> * nodes)

const XSolid * getMainSolid(ulong pid)