abaqustools 2.34__tar.gz → 2.35__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {abaqustools-2.34 → abaqustools-2.35}/PKG-INFO +3 -2
- {abaqustools-2.34 → abaqustools-2.35}/abaqustools.egg-info/PKG-INFO +3 -2
- {abaqustools-2.34 → abaqustools-2.35}/abaqustools.egg-info/SOURCES.txt +0 -1
- {abaqustools-2.34 → abaqustools-2.35}/abq.py +24 -9
- abaqustools-2.35/example/truss/abaqus.rpy +29 -0
- abaqustools-2.35/example/trussjointc/abaqus.rpy +102 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/trussjointc/create_model2.py +2 -2
- {abaqustools-2.34 → abaqustools-2.35}/example/trussjointc/simple_trussjointc.com +1 -1
- abaqustools-2.35/example/trussjointc/simple_trussjointc.dat +27794 -0
- abaqustools-2.35/example/trussjointc/simple_trussjointc.inp +3524 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/trussjointc/simple_trussjointc.sim +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/kw.py +926 -573
- {abaqustools-2.34 → abaqustools-2.35}/odbexport/export.py +63 -5
- {abaqustools-2.34 → abaqustools-2.35}/odbexport/odbfunc.py +6 -2
- {abaqustools-2.34 → abaqustools-2.35}/pyproject.toml +1 -1
- abaqustools-2.35/useful/ModelViewPlugin.zip +0 -0
- abaqustools-2.34/example/truss/abaqus.rpy +0 -113
- abaqustools-2.34/example/trussjointc/abaqus.rpy +0 -1319
- abaqustools-2.34/example/trussjointc/abaqus.rpy.8 +0 -74
- abaqustools-2.34/example/trussjointc/simple_trussjointc.dat +0 -103
- abaqustools-2.34/example/trussjointc/simple_trussjointc.inp +0 -3585
- abaqustools-2.34/useful/ModelViewPlugin.zip +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/LICENSE +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/README.md +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/abaqustools.egg-info/dependency_links.txt +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/abaqustools.egg-info/requires.txt +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/abaqustools.egg-info/top_level.txt +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/abaqus.rpy.1 +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/create_model.py +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/simple_truss.com +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/simple_truss.dat +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/simple_truss.inp +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/simple_truss.msg +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/simple_truss.odb +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/simple_truss.prt +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/simple_truss.sim +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/truss/simple_truss.sta +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/trussjointc/abaqus.rpy.10 +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/trussjointc/abaqus.rpy.11 +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/trussjointc/abaqus.rpy.2 +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/trussjointc/abaqus.rpy.9 +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/example/trussjointc/create_model.py +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/odbexport/__init__.py +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/odbexport_example/Export.py +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/odbexport_example/Model_single_deck.odb +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/odbexport_example/Model_single_deck_exportmodal.h5 +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/odbexport_example/Model_single_deck_exportmodal.py +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/odbexport_example/Model_single_deck_exportstatic.py +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/odbexport_example/Model_twin_deck.odb +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/setup.cfg +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/useful/Plot_model_and_modes.py +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/useful/plugin_readme.txt +0 -0
- {abaqustools-2.34 → abaqustools-2.35}/useful/tilepictures.m +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: abaqustools
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.35
|
|
4
4
|
Summary: Tools for FEM software ABAQUS.
|
|
5
5
|
Author-email: "O. W. Petersen" <oyvind.w.petersen@ntnu.no>
|
|
6
6
|
Project-URL: repository, https://github.com/Oyvindwpetersen/abaqustools/
|
|
@@ -12,3 +12,4 @@ Requires-Dist: scipy
|
|
|
12
12
|
Requires-Dist: nexusformat
|
|
13
13
|
Requires-Dist: h5py
|
|
14
14
|
Requires-Dist: putools
|
|
15
|
+
Dynamic: license-file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: abaqustools
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.35
|
|
4
4
|
Summary: Tools for FEM software ABAQUS.
|
|
5
5
|
Author-email: "O. W. Petersen" <oyvind.w.petersen@ntnu.no>
|
|
6
6
|
Project-URL: repository, https://github.com/Oyvindwpetersen/abaqustools/
|
|
@@ -12,3 +12,4 @@ Requires-Dist: scipy
|
|
|
12
12
|
Requires-Dist: nexusformat
|
|
13
13
|
Requires-Dist: h5py
|
|
14
14
|
Requires-Dist: putools
|
|
15
|
+
Dynamic: license-file
|
|
@@ -23,7 +23,6 @@ example/trussjointc/abaqus.rpy
|
|
|
23
23
|
example/trussjointc/abaqus.rpy.10
|
|
24
24
|
example/trussjointc/abaqus.rpy.11
|
|
25
25
|
example/trussjointc/abaqus.rpy.2
|
|
26
|
-
example/trussjointc/abaqus.rpy.8
|
|
27
26
|
example/trussjointc/abaqus.rpy.9
|
|
28
27
|
example/trussjointc/create_model.py
|
|
29
28
|
example/trussjointc/create_model2.py
|
|
@@ -11,6 +11,7 @@ import numpy as np
|
|
|
11
11
|
import os
|
|
12
12
|
import putools
|
|
13
13
|
import time
|
|
14
|
+
import subprocess
|
|
14
15
|
|
|
15
16
|
#%%
|
|
16
17
|
|
|
@@ -67,7 +68,7 @@ def printerror(jobname,foldername=''):
|
|
|
67
68
|
|
|
68
69
|
#%%
|
|
69
70
|
|
|
70
|
-
def checkduplicate(inputname):
|
|
71
|
+
def checkduplicate(inputname,halt=True):
|
|
71
72
|
|
|
72
73
|
'''
|
|
73
74
|
Check input file, alert if duplicate node or element numbers
|
|
@@ -93,7 +94,8 @@ def checkduplicate(inputname):
|
|
|
93
94
|
input_file_lines=fid.read().splitlines()
|
|
94
95
|
fid.close()
|
|
95
96
|
|
|
96
|
-
node_or_element=['*NODE
|
|
97
|
+
node_or_element=['*NODE' , '*ELEMENT']
|
|
98
|
+
node_or_element_false=['*NODE OUTPUT' , '*ELEMENT OUTPUT']
|
|
97
99
|
|
|
98
100
|
# Index of lines with star, used for finding end of node/element block
|
|
99
101
|
idx_star=putools.num.listindexsub(input_file_lines,'*')
|
|
@@ -102,6 +104,9 @@ def checkduplicate(inputname):
|
|
|
102
104
|
|
|
103
105
|
# Find all lines with *NODE or *ELEMENT
|
|
104
106
|
idx_keyword=putools.num.listindexsub(input_file_lines,node_or_element[index])
|
|
107
|
+
idx_keyword_false=putools.num.listindexsub(input_file_lines,node_or_element_false[index])
|
|
108
|
+
|
|
109
|
+
idx_keyword = list(set(idx_keyword) - set(idx_keyword_false))
|
|
105
110
|
|
|
106
111
|
numbers_list=[None]*len(idx_keyword)
|
|
107
112
|
|
|
@@ -127,7 +132,9 @@ def checkduplicate(inputname):
|
|
|
127
132
|
|
|
128
133
|
print('***** Duplicate ' + node_or_element[index] + ' numbers:')
|
|
129
134
|
print(numbers_dup)
|
|
130
|
-
|
|
135
|
+
|
|
136
|
+
if halt==True:
|
|
137
|
+
raise Exception('***** Duplicates not allowed, see above printed numbers')
|
|
131
138
|
|
|
132
139
|
|
|
133
140
|
#%%
|
|
@@ -197,21 +204,29 @@ def runjob(foldername,inputname,jobname='',abaqus_cmd='abaqus',cpus=4,echo_cmd=T
|
|
|
197
204
|
|
|
198
205
|
t0=putools.timing.tic()
|
|
199
206
|
#(sys_out)=os.system(system_cmd)
|
|
200
|
-
sys_out=os.popen(system_cmd).read()
|
|
207
|
+
# sys_out=os.popen(system_cmd).read()
|
|
208
|
+
|
|
209
|
+
result = subprocess.run(system_cmd, shell=True, capture_output=True, text=True)
|
|
210
|
+
|
|
211
|
+
print('STDERR:', result.stderr)
|
|
212
|
+
print('STDOUT:', result.stdout)
|
|
213
|
+
|
|
214
|
+
#raise RuntimeError('Command failed, see error above')
|
|
215
|
+
|
|
201
216
|
t1=putools.timing.tocs(t0)
|
|
202
217
|
|
|
203
218
|
# Change back to original folder
|
|
204
219
|
os.chdir(folder_current)
|
|
205
220
|
|
|
206
221
|
if echo_cmd:
|
|
207
|
-
print(
|
|
222
|
+
print(result.stdout)
|
|
208
223
|
|
|
209
224
|
# Check if job is successful
|
|
210
|
-
|
|
211
|
-
if
|
|
225
|
+
completed_bool='COMPLETED' in result.stdout
|
|
226
|
+
if completed_bool:
|
|
212
227
|
print('***** ABAQUS job completed in ' + putools.num.num2strf(t1,1) + ' s')
|
|
213
228
|
|
|
214
|
-
error_bool='Abaqus/Analysis exited with error' in
|
|
229
|
+
error_bool='Abaqus/Analysis exited with error' in result.stdout
|
|
215
230
|
|
|
216
231
|
if error_bool:
|
|
217
232
|
time.sleep(1)
|
|
@@ -220,4 +235,4 @@ def runjob(foldername,inputname,jobname='',abaqus_cmd='abaqus',cpus=4,echo_cmd=T
|
|
|
220
235
|
if halt_error:
|
|
221
236
|
raise Exception('***** Stopped due to ABAQUS errors, see message above')
|
|
222
237
|
|
|
223
|
-
return
|
|
238
|
+
return completed_bool
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# -*- coding: mbcs -*-
|
|
2
|
+
#
|
|
3
|
+
# Abaqus/Viewer Release 2017 replay file
|
|
4
|
+
# Internal Version: 2016_09_27-23.54.59 126836
|
|
5
|
+
# Run by oyvinpet on Fri Jan 31 07:39:57 2025
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
# from driverUtils import executeOnCaeGraphicsStartup
|
|
9
|
+
# executeOnCaeGraphicsStartup()
|
|
10
|
+
#: Executing "onCaeGraphicsStartup()" in the site directory ...
|
|
11
|
+
from abaqus import *
|
|
12
|
+
from abaqusConstants import *
|
|
13
|
+
session.Viewport(name='Viewport: 1', origin=(0.0, 0.0), width=79.6640548706055,
|
|
14
|
+
height=105.125)
|
|
15
|
+
session.viewports['Viewport: 1'].makeCurrent()
|
|
16
|
+
session.viewports['Viewport: 1'].maximize()
|
|
17
|
+
from viewerModules import *
|
|
18
|
+
from driverUtils import executeOnCaeStartup
|
|
19
|
+
executeOnCaeStartup()
|
|
20
|
+
o2 = session.openOdb(name='simple_truss.odb')
|
|
21
|
+
#: Model: C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb
|
|
22
|
+
#: Number of Assemblies: 1
|
|
23
|
+
#: Number of Assembly instances: 0
|
|
24
|
+
#: Number of Part instances: 1
|
|
25
|
+
#: Number of Meshes: 1
|
|
26
|
+
#: Number of Element Sets: 3
|
|
27
|
+
#: Number of Node Sets: 4
|
|
28
|
+
#: Number of Steps: 2
|
|
29
|
+
session.viewports['Viewport: 1'].setValues(displayedObject=o2)
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# -*- coding: mbcs -*-
|
|
2
|
+
#
|
|
3
|
+
# Abaqus/Viewer Release 2017 replay file
|
|
4
|
+
# Internal Version: 2016_09_27-23.54.59 126836
|
|
5
|
+
# Run by oyvinpet on Fri Jan 31 07:41:12 2025
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
# from driverUtils import executeOnCaeGraphicsStartup
|
|
9
|
+
# executeOnCaeGraphicsStartup()
|
|
10
|
+
#: Executing "onCaeGraphicsStartup()" in the site directory ...
|
|
11
|
+
from abaqus import *
|
|
12
|
+
from abaqusConstants import *
|
|
13
|
+
session.Viewport(name='Viewport: 1', origin=(0.0, 0.0), width=79.6640548706055,
|
|
14
|
+
height=105.125)
|
|
15
|
+
session.viewports['Viewport: 1'].makeCurrent()
|
|
16
|
+
session.viewports['Viewport: 1'].maximize()
|
|
17
|
+
from viewerModules import *
|
|
18
|
+
from driverUtils import executeOnCaeStartup
|
|
19
|
+
executeOnCaeStartup()
|
|
20
|
+
o2 = session.openOdb(name='simple_trussjointc.odb')
|
|
21
|
+
#: Model: c:/cloud/od_owp/work/python/github/abaqustools/example/trussjointc/simple_trussjointc.odb
|
|
22
|
+
#: Number of Assemblies: 1
|
|
23
|
+
#: Number of Assembly instances: 0
|
|
24
|
+
#: Number of Part instances: 1
|
|
25
|
+
#: Number of Meshes: 1
|
|
26
|
+
#: Number of Element Sets: 51
|
|
27
|
+
#: Number of Node Sets: 19
|
|
28
|
+
#: Number of Steps: 1
|
|
29
|
+
session.viewports['Viewport: 1'].setValues(displayedObject=o2)
|
|
30
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=37.1481,
|
|
31
|
+
farPlane=54.5279, width=24.5299, height=9.56152, cameraPosition=(26.1367,
|
|
32
|
+
-40.0306, 16.5925), cameraUpVector=(-0.48178, 0.459889, 0.745916),
|
|
33
|
+
cameraTarget=(10.8681, -0.135856, 2.2678))
|
|
34
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=31.2711,
|
|
35
|
+
farPlane=58.8748, width=20.6492, height=8.04887, cameraPosition=(-26.736,
|
|
36
|
+
3.31335, 28.464), cameraUpVector=(0.559357, 0.819197, 0.126636),
|
|
37
|
+
cameraTarget=(9.96447, 0.604917, 2.47069))
|
|
38
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=33.4218,
|
|
39
|
+
farPlane=56.621, width=22.0694, height=8.60245, cameraPosition=(-17.1156,
|
|
40
|
+
-14.5765, 35.1248), cameraUpVector=(0.92647, 0.110357, 0.359827),
|
|
41
|
+
cameraTarget=(9.96839, 0.597637, 2.4734))
|
|
42
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=35.42,
|
|
43
|
+
farPlane=54.5272, width=23.3889, height=9.11677, cameraPosition=(-12.378,
|
|
44
|
+
-37.8069, -4.87823), cameraUpVector=(0.171776, 0.102768, 0.979761),
|
|
45
|
+
cameraTarget=(9.9649, 0.61475, 2.50287))
|
|
46
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=34.16,
|
|
47
|
+
farPlane=55.8047, width=22.5569, height=8.79248, cameraPosition=(-17.5218,
|
|
48
|
+
-34.5083, 8.85578), cameraUpVector=(0.0519255, 0.539614, 0.84031),
|
|
49
|
+
cameraTarget=(9.97415, 0.608815, 2.47816))
|
|
50
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=34.2618,
|
|
51
|
+
farPlane=55.703, width=22.6241, height=8.81869, cameraPosition=(-17.5218,
|
|
52
|
+
-34.5083, 8.85578), cameraUpVector=(0.241531, 0.39918, 0.884487),
|
|
53
|
+
cameraTarget=(9.97415, 0.608815, 2.47816))
|
|
54
|
+
#:
|
|
55
|
+
#: Element: PART_TRUSS.30214
|
|
56
|
+
#: Type: JOINTC
|
|
57
|
+
#: Material:
|
|
58
|
+
#: Section:
|
|
59
|
+
#: Connect: 11, 30201
|
|
60
|
+
#: Results: Integration Point values not available
|
|
61
|
+
#:
|
|
62
|
+
#: Element: PART_TRUSS.30214
|
|
63
|
+
#: Type: JOINTC
|
|
64
|
+
#: Material:
|
|
65
|
+
#: Section:
|
|
66
|
+
#: Connect: 11, 30201
|
|
67
|
+
#: Results: Integration Point values not available
|
|
68
|
+
#:
|
|
69
|
+
#: Element: PART_TRUSS.30201
|
|
70
|
+
#: Type: B31
|
|
71
|
+
#: Material:
|
|
72
|
+
#: Section:
|
|
73
|
+
#: Connect: 30201, 30202
|
|
74
|
+
#: Results: Integration Point values not available
|
|
75
|
+
#:
|
|
76
|
+
#: Element: PART_TRUSS.30311
|
|
77
|
+
#: Type: B31
|
|
78
|
+
#: Material:
|
|
79
|
+
#: Section:
|
|
80
|
+
#: Connect: 30311, 30312
|
|
81
|
+
#: Results: Integration Point values not available
|
|
82
|
+
#:
|
|
83
|
+
#: Element: PART_TRUSS.30313
|
|
84
|
+
#: Type: JOINTC
|
|
85
|
+
#: Material:
|
|
86
|
+
#: Section:
|
|
87
|
+
#: Connect: 30312, 12
|
|
88
|
+
#: Results: Integration Point values not available
|
|
89
|
+
#:
|
|
90
|
+
#: Element: PART_TRUSS.30413
|
|
91
|
+
#: Type: JOINTC
|
|
92
|
+
#: Material:
|
|
93
|
+
#: Section:
|
|
94
|
+
#: Connect: 12, 30401
|
|
95
|
+
#: Results: Integration Point values not available
|
|
96
|
+
#:
|
|
97
|
+
#: Element: PART_TRUSS.20214
|
|
98
|
+
#: Type: JOINTC
|
|
99
|
+
#: Material:
|
|
100
|
+
#: Section:
|
|
101
|
+
#: Connect: 12, 20201
|
|
102
|
+
#: Results: Integration Point values not available
|
|
@@ -105,7 +105,7 @@ for k in np.arange(0,7):
|
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
|
|
108
|
-
kw.
|
|
108
|
+
kw.memberjointc(fid, node1, node2, coord1 , coord2 , nodes_el_chord[k,0]*100, nodes_el_chord[k,0]*100,'B31',setname, [0,1,0],kj1,kj2,offset1=0.1,offset2=0.1,max_length=0.4) #
|
|
109
109
|
|
|
110
110
|
kw.beamgeneralsection(fid, setname, 7850, [1e-3,1e-7,0,1e-6,1e-7], [0,1,0], [210e9,81e9])
|
|
111
111
|
|
|
@@ -147,7 +147,7 @@ for k in np.arange(0,8):
|
|
|
147
147
|
#kj2=[1e99,1e99,1e99,1e99,1e99,1e99]
|
|
148
148
|
|
|
149
149
|
|
|
150
|
-
kw.
|
|
150
|
+
kw.memberjointc(fid, node1, node2, coord1 , coord2 , nodes_el_dia[k,0]*100,nodes_el_dia[k,0]*100,'B31',setname, [0,1,0],kj1,kj2,offset1=0.1,offset2=0.1,max_length=0.5) #
|
|
151
151
|
|
|
152
152
|
kw.beamgeneralsection(fid, setname, 7850, [1e-3,1e-7,0,1e-6,1e-7], [0,1,0], [210e9,81e9])
|
|
153
153
|
|
|
@@ -46,7 +46,7 @@ options = {
|
|
|
46
46
|
'moldflowFiles':[],
|
|
47
47
|
'moldflowMaterial':OFF,
|
|
48
48
|
'mp_file_system':(DETECT, DETECT),
|
|
49
|
-
'mp_head_node':('ntnu08422.win.ntnu.no', 'ntnu08422', '10.100.
|
|
49
|
+
'mp_head_node':('ntnu08422.win.ntnu.no', 'ntnu08422', '10.100.224.48', '192.168.68.102'),
|
|
50
50
|
'mp_host_list':(('ntnu08422', 4),),
|
|
51
51
|
'mp_mode':MPI,
|
|
52
52
|
'mp_mode_requested':MPI,
|