abaqustools 2.33__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.33/abaqustools.egg-info → abaqustools-2.35}/PKG-INFO +4 -3
- {abaqustools-2.33 → abaqustools-2.35}/README.md +5 -2
- {abaqustools-2.33 → abaqustools-2.35/abaqustools.egg-info}/PKG-INFO +4 -3
- abaqustools-2.35/abaqustools.egg-info/SOURCES.txt +45 -0
- {abaqustools-2.33 → abaqustools-2.35}/abaqustools.egg-info/requires.txt +0 -1
- {abaqustools-2.33 → abaqustools-2.35}/abq.py +83 -40
- abaqustools-2.35/example/truss/abaqus.rpy +29 -0
- abaqustools-2.35/example/truss/abaqus.rpy.1 +119 -0
- abaqustools-2.35/example/truss/simple_truss.com +96 -0
- abaqustools-2.35/example/truss/simple_truss.dat +482 -0
- abaqustools-2.35/example/truss/simple_truss.inp +112 -0
- abaqustools-2.35/example/truss/simple_truss.msg +1247 -0
- abaqustools-2.35/example/truss/simple_truss.odb +0 -0
- abaqustools-2.35/example/truss/simple_truss.prt +103 -0
- abaqustools-2.35/example/truss/simple_truss.sim +0 -0
- abaqustools-2.35/example/truss/simple_truss.sta +25 -0
- abaqustools-2.35/example/trussjointc/abaqus.rpy +102 -0
- abaqustools-2.35/example/trussjointc/abaqus.rpy.10 +64 -0
- abaqustools-2.35/example/trussjointc/abaqus.rpy.11 +292 -0
- abaqustools-2.35/example/trussjointc/abaqus.rpy.2 +825 -0
- abaqustools-2.35/example/trussjointc/abaqus.rpy.9 +29 -0
- {abaqustools-2.33 → abaqustools-2.35}/example/trussjointc/create_model.py +1 -1
- abaqustools-2.35/example/trussjointc/create_model2.py +225 -0
- abaqustools-2.35/example/trussjointc/simple_trussjointc.com +96 -0
- abaqustools-2.35/example/trussjointc/simple_trussjointc.dat +27794 -0
- abaqustools-2.35/example/trussjointc/simple_trussjointc.inp +3524 -0
- abaqustools-2.35/example/trussjointc/simple_trussjointc.sim +0 -0
- abaqustools-2.35/kw.py +2261 -0
- abaqustools-2.35/odbexport/export.py +581 -0
- abaqustools-2.35/odbexport/odbfunc.py +441 -0
- {abaqustools-2.33 → abaqustools-2.35}/odbexport_example/Export.py +3 -3
- abaqustools-2.35/odbexport_example/Model_single_deck.odb +0 -0
- abaqustools-2.35/odbexport_example/Model_single_deck_exportmodal.h5 +0 -0
- {abaqustools-2.33 → abaqustools-2.35}/odbexport_example/Model_single_deck_exportmodal.py +4 -1
- {abaqustools-2.33 → abaqustools-2.35}/odbexport_example/Model_single_deck_exportstatic.py +4 -1
- abaqustools-2.35/odbexport_example/Model_twin_deck.odb +0 -0
- {abaqustools-2.33 → abaqustools-2.35}/pyproject.toml +9 -7
- abaqustools-2.35/useful/ModelViewPlugin.zip +0 -0
- abaqustools-2.35/useful/plugin_readme.txt +1 -0
- abaqustools-2.35/useful/tilepictures.m +86 -0
- abaqustools-2.33/__old__/EstimateCableDeflectionSimple.py +0 -203
- abaqustools-2.33/__old__/OLD_AbaqusExportModal.py +0 -640
- abaqustools-2.33/__old__/OLD_functions_gen - Copy.py +0 -738
- abaqustools-2.33/__old__/TestParameters.py +0 -278
- abaqustools-2.33/__old__/Test_time1.py +0 -408
- abaqustools-2.33/__old__/Test_time2.py +0 -326
- abaqustools-2.33/__old__/functions_gen.py +0 -738
- abaqustools-2.33/__old__/untitled0.py +0 -110
- abaqustools-2.33/abaqustools.egg-info/SOURCES.txt +0 -40
- abaqustools-2.33/develop/Export_debug.py +0 -31
- abaqustools-2.33/develop/Export_new.py +0 -115
- abaqustools-2.33/develop/nordsenga/nordsenga_truss.py +0 -213
- abaqustools-2.33/develop/test_build_gradually/Runmodel.py +0 -37
- abaqustools-2.33/develop/test_retract/Langenuen_tower_exportstatic.py +0 -34
- abaqustools-2.33/develop/test_retract/Langenuen_tower_nograv_exportstatic.py +0 -29
- abaqustools-2.33/develop/test_retract/Sulafjorden_tower_exportstatic.py +0 -34
- abaqustools-2.33/develop/test_retract/Sulafjorden_tower_nograv_exportstatic.py +0 -29
- abaqustools-2.33/develop/test_retract/test_retract.py +0 -110
- abaqustools-2.33/develop/testodb/TestLangenuen_exportmodal.py +0 -50
- abaqustools-2.33/develop/testodb/TestLangenuen_exportstatic.py +0 -47
- abaqustools-2.33/develop/testrayleigh/testray.py +0 -149
- abaqustools-2.33/develop/testrayleigh/testray_old.py +0 -152
- abaqustools-2.33/kw.py +0 -1218
- abaqustools-2.33/odbexport/export.py +0 -447
- abaqustools-2.33/odbexport/odbfunc.py +0 -373
- {abaqustools-2.33 → abaqustools-2.35}/LICENSE +0 -0
- {abaqustools-2.33 → abaqustools-2.35}/abaqustools.egg-info/dependency_links.txt +0 -0
- {abaqustools-2.33 → abaqustools-2.35}/abaqustools.egg-info/top_level.txt +0 -0
- {abaqustools-2.33 → abaqustools-2.35}/example/truss/create_model.py +0 -0
- {abaqustools-2.33 → abaqustools-2.35}/odbexport/__init__.py +0 -0
- {abaqustools-2.33 → abaqustools-2.35}/setup.cfg +0 -0
- {abaqustools-2.33 → abaqustools-2.35}/useful/Plot_model_and_modes.py +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
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
|
+
Project-URL: repository, https://github.com/Oyvindwpetersen/abaqustools/
|
|
6
7
|
Keywords: abaqus,export,fem,odb
|
|
7
8
|
Requires-Python: >=3
|
|
8
9
|
License-File: LICENSE
|
|
@@ -11,4 +12,4 @@ Requires-Dist: scipy
|
|
|
11
12
|
Requires-Dist: nexusformat
|
|
12
13
|
Requires-Dist: h5py
|
|
13
14
|
Requires-Dist: putools
|
|
14
|
-
|
|
15
|
+
Dynamic: license-file
|
|
@@ -22,6 +22,9 @@ This repo contains useful tools for the pre and post processing of Abaqus model,
|
|
|
22
22
|
|
|
23
23
|
## Required packages
|
|
24
24
|
The following list of packages are required:
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
- numpy
|
|
26
|
+
- scipy
|
|
27
|
+
- nexusformat
|
|
28
|
+
- h5py
|
|
29
|
+
- putools @ https://github.com/Oyvindwpetersen/putools
|
|
27
30
|
|
|
@@ -1,8 +1,9 @@
|
|
|
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
|
+
Project-URL: repository, https://github.com/Oyvindwpetersen/abaqustools/
|
|
6
7
|
Keywords: abaqus,export,fem,odb
|
|
7
8
|
Requires-Python: >=3
|
|
8
9
|
License-File: LICENSE
|
|
@@ -11,4 +12,4 @@ Requires-Dist: scipy
|
|
|
11
12
|
Requires-Dist: nexusformat
|
|
12
13
|
Requires-Dist: h5py
|
|
13
14
|
Requires-Dist: putools
|
|
14
|
-
|
|
15
|
+
Dynamic: license-file
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
abq.py
|
|
4
|
+
kw.py
|
|
5
|
+
pyproject.toml
|
|
6
|
+
abaqustools.egg-info/PKG-INFO
|
|
7
|
+
abaqustools.egg-info/SOURCES.txt
|
|
8
|
+
abaqustools.egg-info/dependency_links.txt
|
|
9
|
+
abaqustools.egg-info/requires.txt
|
|
10
|
+
abaqustools.egg-info/top_level.txt
|
|
11
|
+
example/truss/abaqus.rpy
|
|
12
|
+
example/truss/abaqus.rpy.1
|
|
13
|
+
example/truss/create_model.py
|
|
14
|
+
example/truss/simple_truss.com
|
|
15
|
+
example/truss/simple_truss.dat
|
|
16
|
+
example/truss/simple_truss.inp
|
|
17
|
+
example/truss/simple_truss.msg
|
|
18
|
+
example/truss/simple_truss.odb
|
|
19
|
+
example/truss/simple_truss.prt
|
|
20
|
+
example/truss/simple_truss.sim
|
|
21
|
+
example/truss/simple_truss.sta
|
|
22
|
+
example/trussjointc/abaqus.rpy
|
|
23
|
+
example/trussjointc/abaqus.rpy.10
|
|
24
|
+
example/trussjointc/abaqus.rpy.11
|
|
25
|
+
example/trussjointc/abaqus.rpy.2
|
|
26
|
+
example/trussjointc/abaqus.rpy.9
|
|
27
|
+
example/trussjointc/create_model.py
|
|
28
|
+
example/trussjointc/create_model2.py
|
|
29
|
+
example/trussjointc/simple_trussjointc.com
|
|
30
|
+
example/trussjointc/simple_trussjointc.dat
|
|
31
|
+
example/trussjointc/simple_trussjointc.inp
|
|
32
|
+
example/trussjointc/simple_trussjointc.sim
|
|
33
|
+
odbexport/__init__.py
|
|
34
|
+
odbexport/export.py
|
|
35
|
+
odbexport/odbfunc.py
|
|
36
|
+
odbexport_example/Export.py
|
|
37
|
+
odbexport_example/Model_single_deck.odb
|
|
38
|
+
odbexport_example/Model_single_deck_exportmodal.h5
|
|
39
|
+
odbexport_example/Model_single_deck_exportmodal.py
|
|
40
|
+
odbexport_example/Model_single_deck_exportstatic.py
|
|
41
|
+
odbexport_example/Model_twin_deck.odb
|
|
42
|
+
useful/ModelViewPlugin.zip
|
|
43
|
+
useful/Plot_model_and_modes.py
|
|
44
|
+
useful/plugin_readme.txt
|
|
45
|
+
useful/tilepictures.m
|
|
@@ -11,16 +11,25 @@ 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
|
|
|
17
18
|
def printerror(jobname,foldername=''):
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
'''
|
|
21
|
+
Search through msg or dat file for errors, print error if found
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
Arguments
|
|
24
|
+
------------
|
|
25
|
+
jobname (string): name of odb file
|
|
26
|
+
foldername (string): folder of odb file
|
|
27
|
+
|
|
28
|
+
Returns
|
|
29
|
+
------------
|
|
30
|
+
None
|
|
31
|
+
|
|
32
|
+
'''
|
|
24
33
|
|
|
25
34
|
if len(foldername)>0:
|
|
26
35
|
foldername=foldername + '\\'
|
|
@@ -31,15 +40,15 @@ def printerror(jobname,foldername=''):
|
|
|
31
40
|
|
|
32
41
|
|
|
33
42
|
filename=foldername + jobname + '.msg'
|
|
34
|
-
|
|
43
|
+
file_exist=os.path.isfile(filename)
|
|
35
44
|
|
|
36
45
|
# If msg file dont exist, try dat
|
|
37
|
-
if
|
|
46
|
+
if file_exist==False:
|
|
38
47
|
filename=foldername + jobname + '.dat'
|
|
39
|
-
|
|
48
|
+
file_exist=os.path.isfile(filename)
|
|
40
49
|
|
|
41
50
|
# If file dont exist, set empty
|
|
42
|
-
if
|
|
51
|
+
if file_exist==True:
|
|
43
52
|
fid=open(filename, 'r')
|
|
44
53
|
lines=fid.read().splitlines()
|
|
45
54
|
fid.close()
|
|
@@ -59,25 +68,34 @@ def printerror(jobname,foldername=''):
|
|
|
59
68
|
|
|
60
69
|
#%%
|
|
61
70
|
|
|
62
|
-
def checkduplicate(
|
|
63
|
-
|
|
64
|
-
|
|
71
|
+
def checkduplicate(inputname,halt=True):
|
|
72
|
+
|
|
73
|
+
'''
|
|
74
|
+
Check input file, alert if duplicate node or element numbers
|
|
75
|
+
|
|
76
|
+
Arguments
|
|
77
|
+
------------
|
|
78
|
+
inputname (string): name of input file
|
|
65
79
|
|
|
66
|
-
|
|
67
|
-
|
|
80
|
+
Returns
|
|
81
|
+
------------
|
|
82
|
+
None
|
|
68
83
|
|
|
69
|
-
|
|
84
|
+
'''
|
|
85
|
+
|
|
86
|
+
file_exist=os.path.isfile(inputname)
|
|
70
87
|
|
|
71
88
|
# Error if input file dont exist
|
|
72
|
-
if
|
|
73
|
-
print('***** File ' +
|
|
89
|
+
if file_exist==False:
|
|
90
|
+
print('***** File ' + inputname)
|
|
74
91
|
raise Exception('***** File not found')
|
|
75
92
|
|
|
76
|
-
fid=open(
|
|
93
|
+
fid=open(inputname, 'r')
|
|
77
94
|
input_file_lines=fid.read().splitlines()
|
|
78
95
|
fid.close()
|
|
79
96
|
|
|
80
|
-
node_or_element=['*NODE
|
|
97
|
+
node_or_element=['*NODE' , '*ELEMENT']
|
|
98
|
+
node_or_element_false=['*NODE OUTPUT' , '*ELEMENT OUTPUT']
|
|
81
99
|
|
|
82
100
|
# Index of lines with star, used for finding end of node/element block
|
|
83
101
|
idx_star=putools.num.listindexsub(input_file_lines,'*')
|
|
@@ -86,6 +104,9 @@ def checkduplicate(inputfilename):
|
|
|
86
104
|
|
|
87
105
|
# Find all lines with *NODE or *ELEMENT
|
|
88
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))
|
|
89
110
|
|
|
90
111
|
numbers_list=[None]*len(idx_keyword)
|
|
91
112
|
|
|
@@ -111,22 +132,35 @@ def checkduplicate(inputfilename):
|
|
|
111
132
|
|
|
112
133
|
print('***** Duplicate ' + node_or_element[index] + ' numbers:')
|
|
113
134
|
print(numbers_dup)
|
|
114
|
-
|
|
135
|
+
|
|
136
|
+
if halt==True:
|
|
137
|
+
raise Exception('***** Duplicates not allowed, see above printed numbers')
|
|
115
138
|
|
|
116
139
|
|
|
117
140
|
#%%
|
|
118
141
|
|
|
119
142
|
def runjob(foldername,inputname,jobname='',abaqus_cmd='abaqus',cpus=4,echo_cmd=True,halt_error=True,oldjobname=''):
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
143
|
+
|
|
144
|
+
'''
|
|
145
|
+
Check input file, alert if duplicate node or element numbers
|
|
146
|
+
|
|
147
|
+
Arguments
|
|
148
|
+
------------
|
|
149
|
+
foldername (string): folder of input file
|
|
150
|
+
inputname (string): name of input file
|
|
151
|
+
jobname (string): name of odb file, if empty then equal to inputname
|
|
152
|
+
abaqus_cmd (string): string supplied to system command, usually 'abaqus'
|
|
153
|
+
cpus (number): number of cores
|
|
154
|
+
echo_cmd (bool): echo console output from system
|
|
155
|
+
halt_error (bool): halt or not if error in Abaqus analysis
|
|
156
|
+
oldjobname (string): name of old odb file, only relevant for restart analysis, else set to empty
|
|
157
|
+
|
|
158
|
+
Returns
|
|
159
|
+
------------
|
|
160
|
+
completed (bool): if the job is completed or not
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
'''
|
|
130
164
|
|
|
131
165
|
if len(abaqus_cmd)<1:
|
|
132
166
|
abaqus_cmd='abaqus'
|
|
@@ -147,8 +181,8 @@ def runjob(foldername,inputname,jobname='',abaqus_cmd='abaqus',cpus=4,echo_cmd=T
|
|
|
147
181
|
|
|
148
182
|
# If lock file exists, delete
|
|
149
183
|
file_name_lock=foldername + '\\' + jobname + '.lck'
|
|
150
|
-
|
|
151
|
-
if
|
|
184
|
+
file_exist=os.path.isfile(file_name_lock)
|
|
185
|
+
if file_exist:
|
|
152
186
|
print('***** Lock-file existing, deleting')
|
|
153
187
|
os.remove(file_name_lock)
|
|
154
188
|
time.sleep(0.1)
|
|
@@ -170,26 +204,35 @@ def runjob(foldername,inputname,jobname='',abaqus_cmd='abaqus',cpus=4,echo_cmd=T
|
|
|
170
204
|
|
|
171
205
|
t0=putools.timing.tic()
|
|
172
206
|
#(sys_out)=os.system(system_cmd)
|
|
173
|
-
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
|
+
|
|
174
216
|
t1=putools.timing.tocs(t0)
|
|
175
217
|
|
|
176
218
|
# Change back to original folder
|
|
177
219
|
os.chdir(folder_current)
|
|
178
220
|
|
|
179
221
|
if echo_cmd:
|
|
180
|
-
print(
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
222
|
+
print(result.stdout)
|
|
223
|
+
|
|
224
|
+
# Check if job is successful
|
|
225
|
+
completed_bool='COMPLETED' in result.stdout
|
|
226
|
+
if completed_bool:
|
|
184
227
|
print('***** ABAQUS job completed in ' + putools.num.num2strf(t1,1) + ' s')
|
|
185
|
-
|
|
186
|
-
|
|
228
|
+
|
|
229
|
+
error_bool='Abaqus/Analysis exited with error' in result.stdout
|
|
187
230
|
|
|
188
|
-
if
|
|
231
|
+
if error_bool:
|
|
189
232
|
time.sleep(1)
|
|
190
233
|
printerror(jobname,foldername)
|
|
191
234
|
|
|
192
235
|
if halt_error:
|
|
193
236
|
raise Exception('***** Stopped due to ABAQUS errors, see message above')
|
|
194
237
|
|
|
195
|
-
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,119 @@
|
|
|
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 Mon Aug 21 20:47:40 2023
|
|
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=307.999969482422,
|
|
14
|
+
height=173.0)
|
|
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/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)
|
|
30
|
+
import sys
|
|
31
|
+
sys.path.insert(15, r'c:/Users/oyvinpet/abaqus_plugins/ModelViewPlugin')
|
|
32
|
+
import ModelView
|
|
33
|
+
import ModelView
|
|
34
|
+
ModelView.ModelViewFunc(render_beams='Off', deflection=50, scalefactor=-1,
|
|
35
|
+
step=-1, x_in_or_out='In')
|
|
36
|
+
session.viewports['Viewport: 1'].odbDisplay.commonOptions.setValues(
|
|
37
|
+
deformationScaling=AUTO)
|
|
38
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=86.5984,
|
|
39
|
+
farPlane=113.897, width=30.1815, height=9.74546, viewOffsetX=13.1623,
|
|
40
|
+
viewOffsetY=-3.81748)
|
|
41
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
42
|
+
'Viewport: 1', ))
|
|
43
|
+
session.animationController.play(duration=UNLIMITED)
|
|
44
|
+
session.animationController.setValues(animationType=NONE)
|
|
45
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
46
|
+
'Viewport: 1', ))
|
|
47
|
+
session.animationController.play(duration=UNLIMITED)
|
|
48
|
+
session.animationController.setValues(animationType=NONE)
|
|
49
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
50
|
+
'Viewport: 1', ))
|
|
51
|
+
session.animationController.play(duration=UNLIMITED)
|
|
52
|
+
session.animationController.setValues(animationType=NONE)
|
|
53
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=2 )
|
|
54
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=3 )
|
|
55
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=4 )
|
|
56
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=5 )
|
|
57
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=6 )
|
|
58
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=7 )
|
|
59
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=8 )
|
|
60
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
61
|
+
'Viewport: 1', ))
|
|
62
|
+
session.animationController.play(duration=UNLIMITED)
|
|
63
|
+
session.animationController.setValues(animationType=NONE)
|
|
64
|
+
session.odbs['C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/simple_truss.odb'].close(
|
|
65
|
+
)
|
|
66
|
+
o1 = session.openOdb(
|
|
67
|
+
name='C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/simple_truss.odb')
|
|
68
|
+
session.viewports['Viewport: 1'].setValues(displayedObject=o1)
|
|
69
|
+
#: Model: C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/simple_truss.odb
|
|
70
|
+
#: Number of Assemblies: 1
|
|
71
|
+
#: Number of Assembly instances: 0
|
|
72
|
+
#: Number of Part instances: 1
|
|
73
|
+
#: Number of Meshes: 1
|
|
74
|
+
#: Number of Element Sets: 3
|
|
75
|
+
#: Number of Node Sets: 4
|
|
76
|
+
#: Number of Steps: 2
|
|
77
|
+
import ModelView
|
|
78
|
+
ModelView.ModelViewFunc(render_beams='Off', deflection=50, scalefactor=-1,
|
|
79
|
+
step=-1, x_in_or_out='In')
|
|
80
|
+
session.viewports['Viewport: 1'].odbDisplay.commonOptions.setValues(
|
|
81
|
+
deformationScaling=AUTO)
|
|
82
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=177.283,
|
|
83
|
+
farPlane=232.65, width=73.245, height=23.6504, viewOffsetX=2.91954,
|
|
84
|
+
viewOffsetY=-14.1809)
|
|
85
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
86
|
+
'Viewport: 1', ))
|
|
87
|
+
session.animationController.play(duration=UNLIMITED)
|
|
88
|
+
session.animationController.setValues(animationType=NONE)
|
|
89
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=2 )
|
|
90
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
91
|
+
'Viewport: 1', ))
|
|
92
|
+
session.animationController.play(duration=UNLIMITED)
|
|
93
|
+
session.animationController.setValues(animationType=NONE)
|
|
94
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
95
|
+
'Viewport: 1', ))
|
|
96
|
+
session.animationController.play(duration=UNLIMITED)
|
|
97
|
+
session.animationController.setValues(animationType=NONE)
|
|
98
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=3 )
|
|
99
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
100
|
+
'Viewport: 1', ))
|
|
101
|
+
session.animationController.play(duration=UNLIMITED)
|
|
102
|
+
session.animationController.setValues(animationType=NONE)
|
|
103
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=4 )
|
|
104
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
105
|
+
'Viewport: 1', ))
|
|
106
|
+
session.animationController.play(duration=UNLIMITED)
|
|
107
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=183.89,
|
|
108
|
+
farPlane=226.563, width=33.9884, height=10.9747, viewOffsetX=-0.30252,
|
|
109
|
+
viewOffsetY=-14.5106)
|
|
110
|
+
session.animationController.setValues(animationType=NONE)
|
|
111
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=5 )
|
|
112
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
113
|
+
'Viewport: 1', ))
|
|
114
|
+
session.animationController.play(duration=UNLIMITED)
|
|
115
|
+
session.animationController.setValues(animationType=NONE)
|
|
116
|
+
session.viewports['Viewport: 1'].odbDisplay.setFrame(step=1, frame=6 )
|
|
117
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
118
|
+
'Viewport: 1', ))
|
|
119
|
+
session.animationController.play(duration=UNLIMITED)
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
from driverConstants import *
|
|
2
|
+
from driverStandardMPI import StandardMPIAnalysis
|
|
3
|
+
import driverUtils, sys
|
|
4
|
+
options = {
|
|
5
|
+
'SIMExt':'.sim',
|
|
6
|
+
'ams':OFF,
|
|
7
|
+
'analysisType':STANDARD,
|
|
8
|
+
'applicationName':'analysis',
|
|
9
|
+
'aqua':OFF,
|
|
10
|
+
'beamSectGen':OFF,
|
|
11
|
+
'biorid':OFF,
|
|
12
|
+
'cavityTypes':[],
|
|
13
|
+
'cavparallel':OFF,
|
|
14
|
+
'complexFrequency':OFF,
|
|
15
|
+
'contact':OFF,
|
|
16
|
+
'cosimulation':OFF,
|
|
17
|
+
'coupledProcedure':OFF,
|
|
18
|
+
'cpus':4,
|
|
19
|
+
'cse':OFF,
|
|
20
|
+
'cyclicSymmetryModel':OFF,
|
|
21
|
+
'directCyclic':OFF,
|
|
22
|
+
'direct_solver':DMP,
|
|
23
|
+
'dsa':OFF,
|
|
24
|
+
'dynamic':OFF,
|
|
25
|
+
'filPrt':[],
|
|
26
|
+
'fils':[],
|
|
27
|
+
'finitesliding':OFF,
|
|
28
|
+
'foundation':OFF,
|
|
29
|
+
'geostatic':OFF,
|
|
30
|
+
'geotech':OFF,
|
|
31
|
+
'heatTransfer':OFF,
|
|
32
|
+
'importer':OFF,
|
|
33
|
+
'importerParts':OFF,
|
|
34
|
+
'includes':[],
|
|
35
|
+
'initialConditionsFile':OFF,
|
|
36
|
+
'input':'simple_truss',
|
|
37
|
+
'inputFormat':INP,
|
|
38
|
+
'interactive':None,
|
|
39
|
+
'job':'simple_truss',
|
|
40
|
+
'keyword_licenses':[],
|
|
41
|
+
'lanczos':ON,
|
|
42
|
+
'libs':[],
|
|
43
|
+
'magnetostatic':OFF,
|
|
44
|
+
'massDiffusion':OFF,
|
|
45
|
+
'modifiedTet':OFF,
|
|
46
|
+
'moldflowFiles':[],
|
|
47
|
+
'moldflowMaterial':OFF,
|
|
48
|
+
'mp_file_system':(DETECT, DETECT),
|
|
49
|
+
'mp_head_node':('ntnu08422.win.ntnu.no', 'ntnu08422', '10.100.192.158', '192.168.10.105'),
|
|
50
|
+
'mp_host_list':(('ntnu08422', 4),),
|
|
51
|
+
'mp_mode':MPI,
|
|
52
|
+
'mp_mode_requested':MPI,
|
|
53
|
+
'mp_mpi_validate':OFF,
|
|
54
|
+
'mp_mpirun_path':'C:\\Program Files\\Microsoft MPI\\bin\\mpiexec.exe',
|
|
55
|
+
'mp_rsh_command':'dummy %H -l oyvinpet -n %C',
|
|
56
|
+
'multiphysics':OFF,
|
|
57
|
+
'noDmpDirect':[],
|
|
58
|
+
'noMultiHost':[],
|
|
59
|
+
'noMultiHostElemLoop':['frequency'],
|
|
60
|
+
'no_domain_check':1,
|
|
61
|
+
'outputKeywords':ON,
|
|
62
|
+
'parameterized':OFF,
|
|
63
|
+
'partsAndAssemblies':ON,
|
|
64
|
+
'parval':OFF,
|
|
65
|
+
'postOutput':OFF,
|
|
66
|
+
'preDecomposition':ON,
|
|
67
|
+
'restart':OFF,
|
|
68
|
+
'restartEndStep':OFF,
|
|
69
|
+
'restartIncrement':0,
|
|
70
|
+
'restartStep':0,
|
|
71
|
+
'restartWrite':OFF,
|
|
72
|
+
'rezone':OFF,
|
|
73
|
+
'runCalculator':OFF,
|
|
74
|
+
'soils':OFF,
|
|
75
|
+
'soliter':OFF,
|
|
76
|
+
'solverTypes':['DIRECT', 'DIRECT'],
|
|
77
|
+
'standard_parallel':ALL,
|
|
78
|
+
'staticNonlinear':ON,
|
|
79
|
+
'steadyStateTransport':OFF,
|
|
80
|
+
'step':ON,
|
|
81
|
+
'subGen':OFF,
|
|
82
|
+
'subGenLibs':[],
|
|
83
|
+
'subGenTypes':[],
|
|
84
|
+
'submodel':OFF,
|
|
85
|
+
'substrLibDefs':OFF,
|
|
86
|
+
'substructure':OFF,
|
|
87
|
+
'symmetricModelGeneration':OFF,
|
|
88
|
+
'thermal':OFF,
|
|
89
|
+
'tmpdir':'C:\\Users\\oyvinpet\\AppData\\Local\\Temp',
|
|
90
|
+
'tracer':OFF,
|
|
91
|
+
'visco':OFF,
|
|
92
|
+
'xplSelect':OFF,
|
|
93
|
+
}
|
|
94
|
+
analysis = StandardMPIAnalysis(options)
|
|
95
|
+
status = analysis.run()
|
|
96
|
+
sys.exit(status)
|