abaqustools 2.32__tar.gz → 2.34__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.32/abaqustools.egg-info → abaqustools-2.34}/PKG-INFO +3 -3
- {abaqustools-2.32 → abaqustools-2.34}/README.md +5 -2
- {abaqustools-2.32 → abaqustools-2.34/abaqustools.egg-info}/PKG-INFO +3 -3
- abaqustools-2.34/abaqustools.egg-info/SOURCES.txt +46 -0
- {abaqustools-2.32 → abaqustools-2.34}/abaqustools.egg-info/requires.txt +0 -1
- abaqustools-2.34/abaqustools.egg-info/top_level.txt +3 -0
- abaqustools-2.34/abq.py +223 -0
- abaqustools-2.34/example/truss/abaqus.rpy +113 -0
- abaqustools-2.34/example/truss/abaqus.rpy.1 +119 -0
- abaqustools-2.34/example/truss/simple_truss.com +96 -0
- abaqustools-2.34/example/truss/simple_truss.dat +482 -0
- abaqustools-2.34/example/truss/simple_truss.inp +112 -0
- abaqustools-2.34/example/truss/simple_truss.msg +1247 -0
- abaqustools-2.34/example/truss/simple_truss.odb +0 -0
- abaqustools-2.34/example/truss/simple_truss.prt +103 -0
- abaqustools-2.34/example/truss/simple_truss.sim +0 -0
- abaqustools-2.34/example/truss/simple_truss.sta +25 -0
- abaqustools-2.34/example/trussjointc/abaqus.rpy +1319 -0
- abaqustools-2.34/example/trussjointc/abaqus.rpy.10 +64 -0
- abaqustools-2.34/example/trussjointc/abaqus.rpy.11 +292 -0
- abaqustools-2.34/example/trussjointc/abaqus.rpy.2 +825 -0
- abaqustools-2.34/example/trussjointc/abaqus.rpy.8 +74 -0
- abaqustools-2.34/example/trussjointc/abaqus.rpy.9 +29 -0
- {abaqustools-2.32 → abaqustools-2.34}/example/trussjointc/create_model.py +1 -1
- abaqustools-2.34/example/trussjointc/create_model2.py +225 -0
- abaqustools-2.34/example/trussjointc/simple_trussjointc.com +96 -0
- abaqustools-2.34/example/trussjointc/simple_trussjointc.dat +103 -0
- abaqustools-2.34/example/trussjointc/simple_trussjointc.inp +3585 -0
- abaqustools-2.34/example/trussjointc/simple_trussjointc.sim +0 -0
- abaqustools-2.34/kw.py +1908 -0
- abaqustools-2.34/odbexport/export.py +523 -0
- abaqustools-2.34/odbexport/odbfunc.py +437 -0
- {abaqustools-2.32 → abaqustools-2.34}/odbexport_example/Export.py +3 -3
- abaqustools-2.34/odbexport_example/Model_single_deck.odb +0 -0
- abaqustools-2.34/odbexport_example/Model_single_deck_exportmodal.h5 +0 -0
- {abaqustools-2.32 → abaqustools-2.34}/odbexport_example/Model_single_deck_exportmodal.py +4 -1
- {abaqustools-2.32 → abaqustools-2.34}/odbexport_example/Model_single_deck_exportstatic.py +4 -1
- abaqustools-2.34/odbexport_example/Model_twin_deck.odb +0 -0
- {abaqustools-2.32 → abaqustools-2.34}/pyproject.toml +9 -5
- abaqustools-2.34/useful/ModelViewPlugin.zip +0 -0
- abaqustools-2.34/useful/plugin_readme.txt +1 -0
- abaqustools-2.34/useful/tilepictures.m +86 -0
- abaqustools-2.32/__old__/EstimateCableDeflectionSimple.py +0 -203
- abaqustools-2.32/__old__/OLD_AbaqusExportModal.py +0 -640
- abaqustools-2.32/__old__/OLD_functions_gen - Copy.py +0 -738
- abaqustools-2.32/__old__/TestParameters.py +0 -278
- abaqustools-2.32/__old__/Test_time1.py +0 -408
- abaqustools-2.32/__old__/Test_time2.py +0 -326
- abaqustools-2.32/__old__/functions_gen.py +0 -738
- abaqustools-2.32/__old__/untitled0.py +0 -110
- abaqustools-2.32/abaqustools.egg-info/SOURCES.txt +0 -38
- abaqustools-2.32/abaqustools.egg-info/top_level.txt +0 -7
- abaqustools-2.32/develop/Export_debug.py +0 -31
- abaqustools-2.32/develop/Export_new.py +0 -115
- abaqustools-2.32/develop/nordsenga/nordsenga_truss.py +0 -213
- abaqustools-2.32/develop/test_build_gradually/Runmodel.py +0 -37
- abaqustools-2.32/develop/test_retract/Langenuen_tower_exportstatic.py +0 -34
- abaqustools-2.32/develop/test_retract/Langenuen_tower_nograv_exportstatic.py +0 -29
- abaqustools-2.32/develop/test_retract/Sulafjorden_tower_exportstatic.py +0 -34
- abaqustools-2.32/develop/test_retract/Sulafjorden_tower_nograv_exportstatic.py +0 -29
- abaqustools-2.32/develop/test_retract/test_retract.py +0 -110
- abaqustools-2.32/develop/testodb/TestLangenuen_exportmodal.py +0 -50
- abaqustools-2.32/develop/testodb/TestLangenuen_exportstatic.py +0 -47
- abaqustools-2.32/develop/testrayleigh/testray.py +0 -149
- abaqustools-2.32/develop/testrayleigh/testray_old.py +0 -152
- abaqustools-2.32/odbexport/export.py +0 -447
- abaqustools-2.32/odbexport/odbfunc.py +0 -373
- {abaqustools-2.32 → abaqustools-2.34}/LICENSE +0 -0
- {abaqustools-2.32 → abaqustools-2.34}/abaqustools.egg-info/dependency_links.txt +0 -0
- {abaqustools-2.32 → abaqustools-2.34}/example/truss/create_model.py +0 -0
- {abaqustools-2.32 → abaqustools-2.34}/odbexport/__init__.py +0 -0
- {abaqustools-2.32 → abaqustools-2.34}/setup.cfg +0 -0
- {abaqustools-2.32 → abaqustools-2.34}/useful/Plot_model_and_modes.py +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: abaqustools
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.34
|
|
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,3 @@ Requires-Dist: scipy
|
|
|
11
12
|
Requires-Dist: nexusformat
|
|
12
13
|
Requires-Dist: h5py
|
|
13
14
|
Requires-Dist: putools
|
|
14
|
-
Requires-Dist: ypstruct
|
|
@@ -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.2
|
|
2
2
|
Name: abaqustools
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.34
|
|
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,3 @@ Requires-Dist: scipy
|
|
|
11
12
|
Requires-Dist: nexusformat
|
|
12
13
|
Requires-Dist: h5py
|
|
13
14
|
Requires-Dist: putools
|
|
14
|
-
Requires-Dist: ypstruct
|
|
@@ -0,0 +1,46 @@
|
|
|
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.8
|
|
27
|
+
example/trussjointc/abaqus.rpy.9
|
|
28
|
+
example/trussjointc/create_model.py
|
|
29
|
+
example/trussjointc/create_model2.py
|
|
30
|
+
example/trussjointc/simple_trussjointc.com
|
|
31
|
+
example/trussjointc/simple_trussjointc.dat
|
|
32
|
+
example/trussjointc/simple_trussjointc.inp
|
|
33
|
+
example/trussjointc/simple_trussjointc.sim
|
|
34
|
+
odbexport/__init__.py
|
|
35
|
+
odbexport/export.py
|
|
36
|
+
odbexport/odbfunc.py
|
|
37
|
+
odbexport_example/Export.py
|
|
38
|
+
odbexport_example/Model_single_deck.odb
|
|
39
|
+
odbexport_example/Model_single_deck_exportmodal.h5
|
|
40
|
+
odbexport_example/Model_single_deck_exportmodal.py
|
|
41
|
+
odbexport_example/Model_single_deck_exportstatic.py
|
|
42
|
+
odbexport_example/Model_twin_deck.odb
|
|
43
|
+
useful/ModelViewPlugin.zip
|
|
44
|
+
useful/Plot_model_and_modes.py
|
|
45
|
+
useful/plugin_readme.txt
|
|
46
|
+
useful/tilepictures.m
|
abaqustools-2.34/abq.py
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
#@author: OWP
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
#%%
|
|
9
|
+
|
|
10
|
+
import numpy as np
|
|
11
|
+
import os
|
|
12
|
+
import putools
|
|
13
|
+
import time
|
|
14
|
+
|
|
15
|
+
#%%
|
|
16
|
+
|
|
17
|
+
def printerror(jobname,foldername=''):
|
|
18
|
+
|
|
19
|
+
'''
|
|
20
|
+
Search through msg or dat file for errors, print error if found
|
|
21
|
+
|
|
22
|
+
Arguments
|
|
23
|
+
------------
|
|
24
|
+
jobname (string): name of odb file
|
|
25
|
+
foldername (string): folder of odb file
|
|
26
|
+
|
|
27
|
+
Returns
|
|
28
|
+
------------
|
|
29
|
+
None
|
|
30
|
+
|
|
31
|
+
'''
|
|
32
|
+
|
|
33
|
+
if len(foldername)>0:
|
|
34
|
+
foldername=foldername + '\\'
|
|
35
|
+
|
|
36
|
+
# Remove odb extension if provided
|
|
37
|
+
if jobname.endswith('.odb'):
|
|
38
|
+
jobname=jobname[:-4]
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
filename=foldername + jobname + '.msg'
|
|
42
|
+
file_exist=os.path.isfile(filename)
|
|
43
|
+
|
|
44
|
+
# If msg file dont exist, try dat
|
|
45
|
+
if file_exist==False:
|
|
46
|
+
filename=foldername + jobname + '.dat'
|
|
47
|
+
file_exist=os.path.isfile(filename)
|
|
48
|
+
|
|
49
|
+
# If file dont exist, set empty
|
|
50
|
+
if file_exist==True:
|
|
51
|
+
fid=open(filename, 'r')
|
|
52
|
+
lines=fid.read().splitlines()
|
|
53
|
+
fid.close()
|
|
54
|
+
else:
|
|
55
|
+
lines=['']
|
|
56
|
+
|
|
57
|
+
# Search for error, print if found
|
|
58
|
+
search_string=' ***ERROR'
|
|
59
|
+
idx_error=putools.num.listindexsub(lines,search_string)
|
|
60
|
+
|
|
61
|
+
if len(idx_error)>0:
|
|
62
|
+
putools.txt.starprint('FOUND ABAQUS ERRORS:',1)
|
|
63
|
+
|
|
64
|
+
for k in np.arange(4):
|
|
65
|
+
|
|
66
|
+
print(lines[k+idx_error[0]])
|
|
67
|
+
|
|
68
|
+
#%%
|
|
69
|
+
|
|
70
|
+
def checkduplicate(inputname):
|
|
71
|
+
|
|
72
|
+
'''
|
|
73
|
+
Check input file, alert if duplicate node or element numbers
|
|
74
|
+
|
|
75
|
+
Arguments
|
|
76
|
+
------------
|
|
77
|
+
inputname (string): name of input file
|
|
78
|
+
|
|
79
|
+
Returns
|
|
80
|
+
------------
|
|
81
|
+
None
|
|
82
|
+
|
|
83
|
+
'''
|
|
84
|
+
|
|
85
|
+
file_exist=os.path.isfile(inputname)
|
|
86
|
+
|
|
87
|
+
# Error if input file dont exist
|
|
88
|
+
if file_exist==False:
|
|
89
|
+
print('***** File ' + inputname)
|
|
90
|
+
raise Exception('***** File not found')
|
|
91
|
+
|
|
92
|
+
fid=open(inputname, 'r')
|
|
93
|
+
input_file_lines=fid.read().splitlines()
|
|
94
|
+
fid.close()
|
|
95
|
+
|
|
96
|
+
node_or_element=['*NODE,' , '*ELEMENT,']
|
|
97
|
+
|
|
98
|
+
# Index of lines with star, used for finding end of node/element block
|
|
99
|
+
idx_star=putools.num.listindexsub(input_file_lines,'*')
|
|
100
|
+
|
|
101
|
+
for index in np.arange(2):
|
|
102
|
+
|
|
103
|
+
# Find all lines with *NODE or *ELEMENT
|
|
104
|
+
idx_keyword=putools.num.listindexsub(input_file_lines,node_or_element[index])
|
|
105
|
+
|
|
106
|
+
numbers_list=[None]*len(idx_keyword)
|
|
107
|
+
|
|
108
|
+
# Find node or element numbers
|
|
109
|
+
for k in np.arange(len(idx_keyword)):
|
|
110
|
+
|
|
111
|
+
idx_star_next=next(x for x in idx_star if x > idx_keyword[k])
|
|
112
|
+
|
|
113
|
+
line_range=np.arange(idx_keyword[k]+1,idx_star_next)
|
|
114
|
+
input_file_lines_sub = [input_file_lines[i] for i in line_range]
|
|
115
|
+
|
|
116
|
+
numeric_block=putools.num.str2num(input_file_lines_sub,'int',1)
|
|
117
|
+
numbers_list[k]=numeric_block[:,0]
|
|
118
|
+
|
|
119
|
+
#[float(s) for s in example_string.split(',')]
|
|
120
|
+
|
|
121
|
+
# Find duplicates
|
|
122
|
+
numbers_all=np.concatenate(numbers_list,axis=0)
|
|
123
|
+
(u,c)= np.unique(numbers_all, return_counts=True)
|
|
124
|
+
numbers_dup=u[c>1]
|
|
125
|
+
|
|
126
|
+
if len(numbers_dup)>0:
|
|
127
|
+
|
|
128
|
+
print('***** Duplicate ' + node_or_element[index] + ' numbers:')
|
|
129
|
+
print(numbers_dup)
|
|
130
|
+
raise Exception('***** Duplicates not allowed, see above printed numbers')
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
#%%
|
|
134
|
+
|
|
135
|
+
def runjob(foldername,inputname,jobname='',abaqus_cmd='abaqus',cpus=4,echo_cmd=True,halt_error=True,oldjobname=''):
|
|
136
|
+
|
|
137
|
+
'''
|
|
138
|
+
Check input file, alert if duplicate node or element numbers
|
|
139
|
+
|
|
140
|
+
Arguments
|
|
141
|
+
------------
|
|
142
|
+
foldername (string): folder of input file
|
|
143
|
+
inputname (string): name of input file
|
|
144
|
+
jobname (string): name of odb file, if empty then equal to inputname
|
|
145
|
+
abaqus_cmd (string): string supplied to system command, usually 'abaqus'
|
|
146
|
+
cpus (number): number of cores
|
|
147
|
+
echo_cmd (bool): echo console output from system
|
|
148
|
+
halt_error (bool): halt or not if error in Abaqus analysis
|
|
149
|
+
oldjobname (string): name of old odb file, only relevant for restart analysis, else set to empty
|
|
150
|
+
|
|
151
|
+
Returns
|
|
152
|
+
------------
|
|
153
|
+
completed (bool): if the job is completed or not
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
'''
|
|
157
|
+
|
|
158
|
+
if len(abaqus_cmd)<1:
|
|
159
|
+
abaqus_cmd='abaqus'
|
|
160
|
+
|
|
161
|
+
if len(jobname)<1:
|
|
162
|
+
jobname=inputname;
|
|
163
|
+
|
|
164
|
+
if jobname[-4:].casefold()=='.inp' or jobname[-4:].casefold()=='.odb':
|
|
165
|
+
jobname=jobname[:-4]
|
|
166
|
+
|
|
167
|
+
print('***** Running ABAQUS job ' + jobname)
|
|
168
|
+
|
|
169
|
+
# Save current folder
|
|
170
|
+
folder_current=os.getcwd()
|
|
171
|
+
|
|
172
|
+
# Change to folder where inputfile is
|
|
173
|
+
os.chdir(foldername)
|
|
174
|
+
|
|
175
|
+
# If lock file exists, delete
|
|
176
|
+
file_name_lock=foldername + '\\' + jobname + '.lck'
|
|
177
|
+
file_exist=os.path.isfile(file_name_lock)
|
|
178
|
+
if file_exist:
|
|
179
|
+
print('***** Lock-file existing, deleting')
|
|
180
|
+
os.remove(file_name_lock)
|
|
181
|
+
time.sleep(0.1)
|
|
182
|
+
|
|
183
|
+
# Create system command input
|
|
184
|
+
system_cmd=''
|
|
185
|
+
system_cmd=system_cmd + abaqus_cmd
|
|
186
|
+
system_cmd=system_cmd +' job=' + jobname
|
|
187
|
+
|
|
188
|
+
# Add oldjob if provided
|
|
189
|
+
if len(oldjobname)>0:
|
|
190
|
+
system_cmd=system_cmd + ' oldjob=' + oldjobname
|
|
191
|
+
|
|
192
|
+
system_cmd=system_cmd + ' input=' + inputname
|
|
193
|
+
system_cmd=system_cmd + ' interactive'
|
|
194
|
+
system_cmd=system_cmd + ' cpus=' + str(cpus)
|
|
195
|
+
|
|
196
|
+
# [abaqus_cmd ' job=' jobname ' input=' inputname ' interactive' ' cpus=' num2str(cpus) ]
|
|
197
|
+
|
|
198
|
+
t0=putools.timing.tic()
|
|
199
|
+
#(sys_out)=os.system(system_cmd)
|
|
200
|
+
sys_out=os.popen(system_cmd).read()
|
|
201
|
+
t1=putools.timing.tocs(t0)
|
|
202
|
+
|
|
203
|
+
# Change back to original folder
|
|
204
|
+
os.chdir(folder_current)
|
|
205
|
+
|
|
206
|
+
if echo_cmd:
|
|
207
|
+
print(sys_out)
|
|
208
|
+
|
|
209
|
+
# Check if job is successful
|
|
210
|
+
completed='COMPLETED' in sys_out
|
|
211
|
+
if completed:
|
|
212
|
+
print('***** ABAQUS job completed in ' + putools.num.num2strf(t1,1) + ' s')
|
|
213
|
+
|
|
214
|
+
error_bool='Abaqus/Analysis exited with error' in sys_out
|
|
215
|
+
|
|
216
|
+
if error_bool:
|
|
217
|
+
time.sleep(1)
|
|
218
|
+
printerror(jobname,foldername)
|
|
219
|
+
|
|
220
|
+
if halt_error:
|
|
221
|
+
raise Exception('***** Stopped due to ABAQUS errors, see message above')
|
|
222
|
+
|
|
223
|
+
return completed
|
|
@@ -0,0 +1,113 @@
|
|
|
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 Tue Aug 22 07:43:23 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/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)
|
|
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'].view.setValues(nearPlane=139.057,
|
|
37
|
+
farPlane=259.422, width=101.604, height=32.8074, viewOffsetX=3.32791,
|
|
38
|
+
viewOffsetY=-4.9736)
|
|
39
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
40
|
+
'Viewport: 1', ))
|
|
41
|
+
session.animationController.play(duration=UNLIMITED)
|
|
42
|
+
session.animationController.setValues(animationType=NONE)
|
|
43
|
+
session.viewports['Viewport: 1'].odbDisplay.commonOptions.setValues(
|
|
44
|
+
uniformScaleFactor=2)
|
|
45
|
+
session.animationController.setValues(animationType=HARMONIC, viewports=(
|
|
46
|
+
'Viewport: 1', ))
|
|
47
|
+
session.animationController.play(duration=UNLIMITED)
|
|
48
|
+
session.viewports['Viewport: 1'].view.setValues(nearPlane=182.673,
|
|
49
|
+
farPlane=227.437, width=41.1927, height=13.3009, viewOffsetX=1.57544,
|
|
50
|
+
viewOffsetY=-15.3539)
|
|
51
|
+
session.odbs['C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb'].close(
|
|
52
|
+
)
|
|
53
|
+
o1 = session.openOdb(
|
|
54
|
+
name='C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb')
|
|
55
|
+
session.viewports['Viewport: 1'].setValues(displayedObject=o1)
|
|
56
|
+
#: Model: C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb
|
|
57
|
+
#: Number of Assemblies: 1
|
|
58
|
+
#: Number of Assembly instances: 0
|
|
59
|
+
#: Number of Part instances: 1
|
|
60
|
+
#: Number of Meshes: 1
|
|
61
|
+
#: Number of Element Sets: 3
|
|
62
|
+
#: Number of Node Sets: 4
|
|
63
|
+
#: Number of Steps: 2
|
|
64
|
+
import ModelView
|
|
65
|
+
ModelView.ModelViewFunc(render_beams='Off', deflection=50, scalefactor=-1,
|
|
66
|
+
step=-1, x_in_or_out='In')
|
|
67
|
+
#* rom_Transporter::GetClassBagForRead - Table for class "res_Frame" is missing
|
|
68
|
+
#* from the database:
|
|
69
|
+
#* C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb.
|
|
70
|
+
#* The database is corrupt.
|
|
71
|
+
#* File "c:/Users/oyvinpet/abaqus_plugins/ModelViewPlugin\ModelView.py", line
|
|
72
|
+
#* 31, in ModelViewFunc
|
|
73
|
+
#* viewport_obj.view.setValues(cameraPosition= (-2390, -2274, 976))
|
|
74
|
+
import ModelView
|
|
75
|
+
ModelView.ModelViewFunc(render_beams='Off', deflection=50, scalefactor=-1,
|
|
76
|
+
step=-1, x_in_or_out='In')
|
|
77
|
+
#* IndexError: Sequence index out of range
|
|
78
|
+
#* File "c:/Users/oyvinpet/abaqus_plugins/ModelViewPlugin\ModelView.py", line
|
|
79
|
+
#* 52, in ModelViewFunc
|
|
80
|
+
#* firstframe=this_step.frames[1]
|
|
81
|
+
import ModelView
|
|
82
|
+
ModelView.ModelViewFunc(render_beams='Off', deflection=50, scalefactor=-1,
|
|
83
|
+
step=-1, x_in_or_out='In')
|
|
84
|
+
#* rom_Transporter::GetClassBagForRead - Table for class "res_Frame" is missing
|
|
85
|
+
#* from the database:
|
|
86
|
+
#* C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb.
|
|
87
|
+
#* The database is corrupt.
|
|
88
|
+
#* File "c:/Users/oyvinpet/abaqus_plugins/ModelViewPlugin\ModelView.py", line
|
|
89
|
+
#* 31, in ModelViewFunc
|
|
90
|
+
#* viewport_obj.view.setValues(cameraPosition= (-2390, -2274, 976))
|
|
91
|
+
import ModelView
|
|
92
|
+
ModelView.ModelViewFunc(render_beams='Off', deflection=50, scalefactor=-1,
|
|
93
|
+
step=-1, x_in_or_out='In')
|
|
94
|
+
#* rom_Transporter::GetClassBagForRead - Table for class "res_Frame" is missing
|
|
95
|
+
#* from the database:
|
|
96
|
+
#* C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb.
|
|
97
|
+
#* The database is corrupt.
|
|
98
|
+
#* File "c:/Users/oyvinpet/abaqus_plugins/ModelViewPlugin\ModelView.py", line
|
|
99
|
+
#* 52, in ModelViewFunc
|
|
100
|
+
#* firstframe=this_step.frames[1]
|
|
101
|
+
session.odbs['C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb'].close(
|
|
102
|
+
)
|
|
103
|
+
o1 = session.openOdb(
|
|
104
|
+
name='C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb')
|
|
105
|
+
session.viewports['Viewport: 1'].setValues(displayedObject=o1)
|
|
106
|
+
#: Model: C:/Cloud/OD_OWP/Work/Python/Github/abaqustools/example/truss/simple_truss.odb
|
|
107
|
+
#: Number of Assemblies: 1
|
|
108
|
+
#: Number of Assembly instances: 0
|
|
109
|
+
#: Number of Part instances: 1
|
|
110
|
+
#: Number of Meshes: 1
|
|
111
|
+
#: Number of Element Sets: 3
|
|
112
|
+
#: Number of Node Sets: 4
|
|
113
|
+
#: Number of Steps: 2
|
|
@@ -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)
|