YADE는 기본적으로 Defaul Material이 지정되어 있다. 그래서, YADE를 실행 후 확인을 해 보면,
In [2]: len(O.materials)
Out[2]: 0
material container가 비어있다. 오잉?
그렇다면 body를 만들어 보자
O.bodies.append(utils.facet(vertices=[(0,0,0),(0,1,0),(1,1,1)], wire=True, highlight=False))
Facet을 하나 만들어다.
이제 다시 확인해 보면
In [7]: len(O.materials)
Out[7]: 1
material container가 채워졌다. 이때 채워지는 것은 Default값으로 들어가는데, 확인해 보면
In [8]: O.materials[0].dict()
Out[8]:
{'frictionAngle': 0.5,
'young': 10000000.0,
'poisson': 0.3,
'id': 0,
'label': 'defaultMat',
'density': 1000.0}
이 값이 Default값이다. 그런데, material의 mass는 state의 mass와 다르게 된다.
In [11]: O.bodies[0].mat.dict()
Out[11]:
{'frictionAngle': 0.5,
'young': 10000000.0,
'poisson': 0.3,
'id': 0,
'label': 'defaultMat',
'density': 1000.0}
Body의 material은 Default값이 확인되나,
In [12]: O.bodies[0].state.dict()
Out[12]:
{'se3': (Vector3(0.2411809548974792328,0.6589186225978910239,0.2411809548974792328),
Quaternion((1,0,0),0)),
'vel': Vector3(0,0,0),
'mass': 0.0,
'angVel': Vector3(0,0,0),
'angMom': Vector3(0,0,0),
'inertia': Vector3(0,0,0),
'refPos': Vector3(0.2411809548974792328,0.6589186225978910239,0.2411809548974792328),
'refOri': Quaternion((1,0,0),0),
'blockedDOFs': 63,
'isDamped': True,
'densityScaling': -1.0,
'temp': 0.0,
'oldTemp': 0.0,
'stepFlux': 0.0,
'Cp': 0.0,
'k': 0.0,
'alpha': 0.0,
'Tcondition': False,
'boundaryId': -1,
'stabilityCoefficient': 0.0,
'delRadius': 0.0,
'isCavity': False}
body state를 정의하기 위한 mass는 지정되지 않았다.
body의 정보를 확인해 보면,
In [13]: O.bodies[0].dict()
Out[13]:
{'id': 0,
'groupMask': 1,
'flags': 1,
'subdomain': 0,
'material': <FrictMat instance at 0x55cceb60b570>,
'state': <State instance at 0x55cceb51ade0>,
'shape': <Facet instance at 0x55cceb7326b0>,
'bound': None,
'clumpId': -1,
'chain': -1,
'iterBorn': 0,
'timeBorn': 0.0}
안나오는 속성이 꽤나 많다. 확인은 여기서 https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Body.dynamic
Yade wrapper class reference — Yade 3rd ed. documentation
set vertices and update receiver. Takes a list/tuple of vertices as argument. Note Causes memory leaks, so if you want to use it maaaany times, use one of setVertices mentioned lower, passing each vertex as individual argument (currently only setVertices(v
yade-dem.org
외력에 의해서 facet이 움직일 수 있는지 확인해 보자. dict()로 확인이 안되므로 수작업을 해 보면,
In [14]: O.bodies[0].dynamic
Out[14]: False
안되는 걸로.
'YADE' 카테고리의 다른 글
O.interactions의 이해 (0) | 2023.02.14 |
---|---|
matplotlib.pyplot 사용법 (0) | 2023.02.07 |
Interaction 확인방법 (0) | 2023.01.11 |
Body의 종류 확인방법 (0) | 2023.01.11 |
Body의 상태 확인방법 (0) | 2023.01.07 |