-
Boman Romain authoredBoman Romain authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Clidastes_propython_50k.py 3.77 KiB
#! \usr\bin\env python3
# -*- coding: utf-8 -*-
# Clidastes_propython (Della Giustina Francesco)
def parms(d={}):
p = {}
import os
path = os.path.join(os.path.dirname(__file__),'50k')
p['bone'] = f'{path}/Clidastes_50k.ply'
p['fixations'] = [
{
'name': 'contact_pts',
'nodes': [[4.318714, -102.023384, -36.709614],
[-4.908366, -101.943626, -35.218159]],
'direction': 'z'
},
{
'name': 'axis_pt1',
'nodes': [43.380798, 200.395569, 33.000271],
'direction': ['x', 'y', 'z']
},
{
'name': 'axis_pt2',
'nodes': [-47.555614, 202.980087, 34.424416],
'direction': ['x', 'y', 'z']
}
]
p['muscles'] = [
{
'file': f'{path}/M_AE_L1.ply',
'force': 101.61,
'focalpt': [49.04, 168.55, 75.00],
'method': 'T+N'
},
{
'file': f'{path}/M_AE_L2.ply',
'force': 101.61,
'focalpt': [49.04, 168.55, 75.00],
'method': 'T+N'
},
{
'file': f'{path}/M_AE_R1.ply',
'force': 102.08,
'focalpt': [-46.34, 171.53, 75.98],
'method': 'T+N'
},
{
'file': f'{path}/M_AE_R2.ply',
'force': 102.08,
'focalpt': [-46.34, 171.53, 75.98],
'method': 'T+N'
},
{
'file': f'{path}/M_AEM_L.ply',
'force': 94.27,
'focalpt': [43.98, 169.28, 75.45],
'method': 'T+N'
},
{
'file': f'{path}/M_AEM_R.ply',
'force': 91.51,
'focalpt': [-42.81, 170.33, 75.71],
'method': 'T+N'
},
{
'file': f'{path}/M_AMP_L.ply',
'force': 69.87,
'focalpt': [41.02, 191.67, 59.93],
'method': 'T+N'
},
{
'file': f'{path}/M_AMP_R.ply',
'force': 73.41,
'focalpt': [-45.30, 190.73, 59.59],
'method': 'T+N'
},
{
'file': f'{path}/M_PTP_L.ply',
'force': 302.16,
'focalpt': [16.62, 177.37, 74.19],
'method': 'T+N'
},
{
'file': f'{path}/M_PTP_R.ply',
'force': 309.46,
'focalpt': [-16.62, 177.37, 74.19],
'method': 'T+N'
},
{
'file': f'{path}/M_PTS_L.ply',
'force': 47.11,
'focalpt': [17.75, 154.80, 68.71],
'method': 'T+N'
},
{
'file': f'{path}/M_PTS_R.ply',
'force': 49.44,
'focalpt': [-11.99, 156.87, 69.87],
'method': 'T+N'
}
]
p['extractors'] = [
{
'name': 'Point_1_L',
'nodes': [9.737800, -107.443642, -41.476234],
'variables': [ 'x0', 'y0', 'z0', 'sigvm' ]
},
{
'name': 'Point_2_L',
'nodes': [18.720367, -42.742260, -36.978378],
'variables': 'sigvm'
},
{
'name': 'Point_3_and_4_L',
'nodes': [[33.984665, 40.152878, -24.569260],
[43.314785, 99.891335, -16.491674]],
'variables': 'sigzz'
},
{
'name': 'Point_5_L',
'nodes': f'{path}/Point_5_L.off',
'variables': [ 'sigvm', 'dx', 'dy', 'dz' ]
}
]
# material properties
p['density'] = 1.662e-9 # [T\mm³]
p['Young'] = 18000. # [MPa]
p['Poisson'] = 0.3 # [-]
p['dt0'] = 0.3 # [s]
p['tolNR'] = 1e-3 # [-]
p.update(d)
return p
def getMetafor(p={}):
import bonemodel as model
return model.getMetafor(parms(p))
if __name__ == "__main__":
import models.bonemodel2 as model
model.solve(parms())