h2lib 13.2.801__py3-none-win_amd64.whl → 13.2.901__py3-none-win_amd64.whl
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.
- h2lib/HAWC2Lib.dll +0 -0
- h2lib/_h2lib.py +13 -11
- h2lib/_version.py +3 -3
- h2lib/distributed_sections.py +46 -11
- h2lib/dll_wrapper.py +13 -10
- h2lib/h2lib_signatures.py +25 -23
- {h2lib-13.2.801.dist-info → h2lib-13.2.901.dist-info}/METADATA +2 -2
- h2lib-13.2.901.dist-info/RECORD +11 -0
- h2lib-13.2.801.dist-info/RECORD +0 -11
- {h2lib-13.2.801.dist-info → h2lib-13.2.901.dist-info}/WHEEL +0 -0
- {h2lib-13.2.801.dist-info → h2lib-13.2.901.dist-info}/top_level.txt +0 -0
h2lib/HAWC2Lib.dll
CHANGED
Binary file
|
h2lib/_h2lib.py
CHANGED
@@ -703,15 +703,16 @@ class H2LibThread(DLLWrapper, H2Lib_DistributedSections, H2LibSignatures):
|
|
703
703
|
return H2LibSignatures._set_windfield(self, uvw, np.float64(box_offset_x), np.float64(time))
|
704
704
|
|
705
705
|
def set_c2_def(
|
706
|
-
self,
|
706
|
+
self, main_body_nr, c2_def, twist_in_deg=True, check_length=True, update_structure=True
|
707
707
|
):
|
708
708
|
"""
|
709
709
|
Set `c2_def` or `cx_def` for the specified main body.
|
710
710
|
|
711
711
|
Parameters
|
712
712
|
----------
|
713
|
-
|
714
|
-
|
713
|
+
main_body_nr : int
|
714
|
+
Number of main body that must be updated.
|
715
|
+
The mapping between main body name and number can be obtained with `get_mainbody_name_dict`.
|
715
716
|
c2_def : (:, 4) or (:, 5) ndarray
|
716
717
|
New c2_def/cx_def. It is an array with at least 2 rows and 4 columns for x, y, z and twist.
|
717
718
|
Optionally, the 5th column can be used for dx (default is 0.)
|
@@ -747,7 +748,7 @@ class H2LibThread(DLLWrapper, H2Lib_DistributedSections, H2LibSignatures):
|
|
747
748
|
error_code = -1
|
748
749
|
error_code = H2LibSignatures._set_cx_def(
|
749
750
|
self,
|
750
|
-
|
751
|
+
main_body_nr,
|
751
752
|
c2_def.shape[0],
|
752
753
|
c2_def.shape[1],
|
753
754
|
np.asfortranarray(c2_def, dtype=np.float64),
|
@@ -762,15 +763,16 @@ class H2LibThread(DLLWrapper, H2Lib_DistributedSections, H2LibSignatures):
|
|
762
763
|
raise _ERROR_CODES[error_code]
|
763
764
|
|
764
765
|
def set_st(
|
765
|
-
self,
|
766
|
+
self, main_body_nr, st, update_structure=True
|
766
767
|
):
|
767
768
|
"""
|
768
769
|
Set STructural data for the specified main body.
|
769
770
|
|
770
771
|
Parameters
|
771
772
|
----------
|
772
|
-
|
773
|
-
|
773
|
+
main_body_nr : int
|
774
|
+
Number of main body that must be updated.
|
775
|
+
The mapping between main body name and number can be obtained with `get_mainbody_name_dict`.
|
774
776
|
st : (:, :) ndarray
|
775
777
|
New ST. It is an array with an arbitrary number of rows and 19 or 30 columns.
|
776
778
|
Both the classical Timoshenko and the FPM model are supported.
|
@@ -797,7 +799,7 @@ class H2LibThread(DLLWrapper, H2Lib_DistributedSections, H2LibSignatures):
|
|
797
799
|
error_code = -1
|
798
800
|
error_code = H2LibSignatures._set_st(
|
799
801
|
self,
|
800
|
-
|
802
|
+
main_body_nr,
|
801
803
|
st.shape[0],
|
802
804
|
st.shape[1],
|
803
805
|
np.asfortranarray(st, dtype=np.float64),
|
@@ -805,7 +807,7 @@ class H2LibThread(DLLWrapper, H2Lib_DistributedSections, H2LibSignatures):
|
|
805
807
|
error_code,
|
806
808
|
check_stop=False,
|
807
809
|
)[0][-1]
|
808
|
-
|
810
|
+
self.initialize_distributed_sections()
|
809
811
|
if error_code > 0:
|
810
812
|
raise _ERROR_CODES[error_code]
|
811
813
|
|
@@ -1185,12 +1187,12 @@ class H2LibThread(DLLWrapper, H2Lib_DistributedSections, H2LibSignatures):
|
|
1185
1187
|
def get_mainbody_name_dict(self):
|
1186
1188
|
s = " " * 256
|
1187
1189
|
return {H2LibSignatures._get_mainbody_name(self, mainbody_nr=int(i), mainbody_name=s)[0][1].strip(): i
|
1188
|
-
for i in np.arange(self.get_no_mainbodies()
|
1190
|
+
for i in np.arange(1, self.get_no_mainbodies() + 1)}
|
1189
1191
|
|
1190
1192
|
def get_mainbody_position_orientation(self, mainbody_nr, mainbody_coo_nr=0):
|
1191
1193
|
mbdy_pos = np.zeros(3, dtype=np.float64, order="F")
|
1192
1194
|
mbdy_tbg = np.zeros((3, 3), dtype=np.float64, order="F")
|
1193
|
-
return
|
1195
|
+
return H2LibSignatures._get_mainbody_position_orientation(
|
1194
1196
|
self, int(mainbody_nr), mbdy_pos, mbdy_tbg, int(mainbody_coo_nr))[0][1:-1]
|
1195
1197
|
|
1196
1198
|
def get_mainbody_nodes_state(self, mainbody_nr, state, mainbody_coo_nr=0):
|
h2lib/_version.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
# This file is autogenerated and should not be modified manually
|
2
|
-
__version__ = '13.2.
|
3
|
-
h2lib_version = '13.2.
|
4
|
-
hawc2_version = '13.2.
|
2
|
+
__version__ = '13.2.901'
|
3
|
+
h2lib_version = '13.2.901'
|
4
|
+
hawc2_version = '13.2.9+4-gfd77867'
|
h2lib/distributed_sections.py
CHANGED
@@ -42,14 +42,13 @@ class H2Lib_DistributedSections(H2LibSignatures):
|
|
42
42
|
add_distributed_sections and before first call to get_distributed_sections,
|
43
43
|
get_distributed_section_position_orientation and set_distributed_section_force_and_moment
|
44
44
|
"""
|
45
|
-
assert getattr(self, 'distributed_sections_initialized', False) is False
|
46
45
|
mbdy_name_dict = self.get_mainbody_name_dict()
|
47
46
|
assert mainbody_name in mbdy_name_dict, f"'{mainbody_name}' does not exist. Valid names are {list(mbdy_name_dict.keys())}."
|
48
47
|
mbdy_nr = mbdy_name_dict[mainbody_name]
|
49
48
|
nsec = len(section_relative_position)
|
50
49
|
link_id = H2LibSignatures._add_distributed_sections(
|
51
50
|
self,
|
52
|
-
mainbody_nr=
|
51
|
+
mainbody_nr=mbdy_nr,
|
53
52
|
nsec=nsec,
|
54
53
|
sec_rel_pos=np.asfortranarray(section_relative_position, dtype=float),
|
55
54
|
link_id=0)[0][-1]
|
@@ -67,7 +66,7 @@ class H2Lib_DistributedSections(H2LibSignatures):
|
|
67
66
|
|
68
67
|
def get_distributed_sections(self, link_type: LinkType, link_id):
|
69
68
|
"""Return a DistributedSections link object (needed for get_distributed_section_position_orientation
|
70
|
-
and set_distributed_section_force_and_moment).
|
69
|
+
get_distributed_section_force_and_moment and set_distributed_section_force_and_moment).
|
71
70
|
|
72
71
|
To obtain the aerodynamic load sections at blade 3 (only rotor=1 can be accessed):
|
73
72
|
h2.get_distributed_sections(LinkType.BLADE, 3)
|
@@ -76,12 +75,15 @@ class H2Lib_DistributedSections(H2LibSignatures):
|
|
76
75
|
----------
|
77
76
|
link_type : LinkType
|
78
77
|
Specifies the link type. See enum LinkType
|
79
|
-
link_id :
|
78
|
+
link_id : int
|
80
79
|
index of link. link_id=1 will reference the first added sections, e.g. blade1
|
81
80
|
Returns
|
82
81
|
-------
|
83
82
|
DistributedSections object
|
84
83
|
"""
|
84
|
+
if link_type == LinkType.BODY:
|
85
|
+
err_msg = "Call initialize_distributed_sections before get_distributed_sections(link_type=LinkType.BODY,...)"
|
86
|
+
assert getattr(self, 'distributed_sections_initialized', False) is True, err_msg
|
85
87
|
mbdy_nr, nsec = H2LibSignatures._get_distributed_sections(
|
86
88
|
self, link_type.value, link_id, mainbody_nr=0, nsec=0)[0][2:]
|
87
89
|
mbdy_name_dict = self.get_mainbody_name_dict()
|
@@ -90,8 +92,8 @@ class H2Lib_DistributedSections(H2LibSignatures):
|
|
90
92
|
|
91
93
|
def get_distributed_section_position_orientation(self, ds: DistributedSections, mainbody_coo_nr=0):
|
92
94
|
"""Computes the position and orientation of a set of distributed sections.
|
93
|
-
Note, the distributed sections are located on the c2def (aeroload/blade sections have a
|
94
|
-
relative to c2def
|
95
|
+
Note, the distributed sections are located on the c2def (aeroload/blade sections have a twisted 1/4 chord offset
|
96
|
+
relative to c2def)
|
95
97
|
|
96
98
|
Parameters
|
97
99
|
----------
|
@@ -110,11 +112,14 @@ class H2Lib_DistributedSections(H2LibSignatures):
|
|
110
112
|
Orientation of section in specified coordinates.
|
111
113
|
For mainbody_coo_nr=0, default, the orientation is in global coordinates, i.e. Tsg
|
112
114
|
"""
|
115
|
+
if ds.link_type == LinkType.BODY:
|
116
|
+
err_msg = "Call initialize_distributed_sections before get_distributed_section_position_orientation"
|
117
|
+
assert getattr(self, 'distributed_sections_initialized', False) is True, err_msg
|
113
118
|
sec_pos = np.zeros((ds.nsec, 3), dtype=np.float64, order="F")
|
114
119
|
sec_ori = np.zeros((ds.nsec, 3, 3), dtype=np.float64, order="F")
|
115
120
|
return H2LibSignatures._get_distributed_section_position_orientation(
|
116
|
-
self,
|
117
|
-
|
121
|
+
self, ds.link_type.value, ds.link_id, ds.nsec, sec_pos, sec_ori,
|
122
|
+
mainbody_coo_nr)[0][3:-1]
|
118
123
|
|
119
124
|
def set_distributed_section_force_and_moment(self, ds: DistributedSections, sec_frc, sec_mom, mainbody_coo_nr=0):
|
120
125
|
"""Set forces and moments at distributed sections
|
@@ -133,15 +138,45 @@ class H2Lib_DistributedSections(H2LibSignatures):
|
|
133
138
|
Otherwise the index of the mainbody in which coordinate system, the forces and moments are provided
|
134
139
|
The index can be obtained from get_mainbody_name_dict
|
135
140
|
"""
|
136
|
-
|
137
|
-
|
141
|
+
if ds.link_type == LinkType.BODY:
|
142
|
+
err_msg = "Call initialize_distributed_sections before set_distributed_section_force_and_moment"
|
143
|
+
assert getattr(self, 'distributed_sections_initialized', False) is True, err_msg
|
138
144
|
sec_frc = np.asfortranarray(sec_frc, dtype=np.float64)
|
139
145
|
sec_mom = np.asfortranarray(sec_mom, dtype=np.float64)
|
140
146
|
assert sec_frc.shape == (ds.nsec, 3)
|
141
147
|
assert sec_mom.shape == (ds.nsec, 3)
|
142
148
|
return H2LibSignatures._set_distributed_section_force_and_moment(
|
143
149
|
self, link_type=int(ds.link_type.value), link_id=int(ds.link_id), nsec=int(ds.nsec),
|
144
|
-
|
150
|
+
frc=sec_frc, mom=sec_mom, mainbody_coo_nr=int(mainbody_coo_nr))
|
151
|
+
|
152
|
+
def get_distributed_section_force_and_moment(self, ds: DistributedSections, mainbody_coo_nr=0):
|
153
|
+
"""Set forces and moments at distributed sections
|
154
|
+
|
155
|
+
Parameters
|
156
|
+
----------
|
157
|
+
ds : DistributedSections object
|
158
|
+
object returned by add_distributed_sections or get_distributed_sections
|
159
|
+
mainbody_coo_nr : int, optional
|
160
|
+
Specifies the coodinate system of the provided forces and moments.
|
161
|
+
If 0 (default), the forces and moments are in global coordinates
|
162
|
+
Otherwise the index of the mainbody in which coordinate system, the forces and moments are provided
|
163
|
+
The index can be obtained from get_mainbody_name_dict
|
164
|
+
|
165
|
+
Returns
|
166
|
+
-------
|
167
|
+
sec_frc : array_like
|
168
|
+
Section forces pr. length [N/m] in global coordinates, shape=(nsec,3)
|
169
|
+
sec_momc : array_like
|
170
|
+
Section moments pr. length [Nm/m] in global coordinates, shape=(nsec,3)
|
171
|
+
"""
|
172
|
+
if ds.link_type == LinkType.BODY:
|
173
|
+
err_msg = "Call initialize_distributed_sections before get_distributed_section_force_and_moment"
|
174
|
+
assert getattr(self, 'distributed_sections_initialized', False) is True, err_msg
|
175
|
+
sec_frc = np.zeros((ds.nsec, 3), order='F', dtype=np.float64)
|
176
|
+
sec_mom = np.zeros((ds.nsec, 3), order='F', dtype=np.float64)
|
177
|
+
return H2LibSignatures._get_distributed_section_force_and_moment(
|
178
|
+
self, link_type=int(ds.link_type.value), link_id=int(ds.link_id), nsec=int(ds.nsec),
|
179
|
+
frc=sec_frc, mom=sec_mom, mainbody_coo_nr=int(mainbody_coo_nr))[0][3:5]
|
145
180
|
|
146
181
|
def set_fsi_loads_h2lib(self, fx, fy, fz, mx, my, mz): # pragma: no cover
|
147
182
|
"""Temporary function needed to replicate results of the cpl coupling framework"""
|
h2lib/dll_wrapper.py
CHANGED
@@ -17,8 +17,9 @@ import sys
|
|
17
17
|
from pathlib import Path
|
18
18
|
import atexit
|
19
19
|
|
20
|
-
c_int_p = POINTER(ctypes.
|
21
|
-
c_long_p = POINTER(ctypes.
|
20
|
+
c_int_p = POINTER(ctypes.c_int)
|
21
|
+
c_long_p = POINTER(ctypes.c_long)
|
22
|
+
c_longlong_p = POINTER(ctypes.c_longlong)
|
22
23
|
c_double_p = POINTER(ctypes.c_double)
|
23
24
|
c_float_p = POINTER(ctypes.c_float)
|
24
25
|
c_bool_p = POINTER(ctypes.c_bool)
|
@@ -113,19 +114,21 @@ def wrap(self, f, *args, check_stop=True, **kwargs):
|
|
113
114
|
for arg in args:
|
114
115
|
if isinstance(arg, bool):
|
115
116
|
c_args.append(c_bool_p(c_bool(arg)))
|
116
|
-
elif isinstance(arg,
|
117
|
-
c_args.append(c_long_p(
|
118
|
-
elif isinstance(arg,
|
117
|
+
elif isinstance(arg, np.int32):
|
118
|
+
c_args.append(c_long_p(c_long(arg)))
|
119
|
+
elif isinstance(arg, (int, np.int64)):
|
120
|
+
c_args.append(c_longlong_p(c_longlong(arg)))
|
121
|
+
elif isinstance(arg, (float, np.float64)):
|
119
122
|
c_args.append(c_double_p(c_double(arg)))
|
120
123
|
elif isinstance(arg, str):
|
121
124
|
c_args.append(c_char_p(arg.encode('cp1252')))
|
122
|
-
# c_args.append(
|
125
|
+
# c_args.append(c_long_p(c_int(len(arg))))
|
123
126
|
|
124
127
|
elif isinstance(arg, np.ndarray):
|
125
128
|
if arg.dtype in [np.int32]:
|
126
|
-
c_args.append(arg.ctypes.data_as(c_int_p))
|
127
|
-
elif arg.dtype in [np.int64]:
|
128
129
|
c_args.append(arg.ctypes.data_as(c_long_p))
|
130
|
+
elif arg.dtype in [np.int64]:
|
131
|
+
c_args.append(arg.ctypes.data_as(c_longlong_p))
|
129
132
|
elif arg.dtype == np.float64:
|
130
133
|
c_args.append(arg.ctypes.data_as(c_double_p))
|
131
134
|
elif arg.dtype == np.float32:
|
@@ -158,7 +161,7 @@ def wrap(self, f, *args, check_stop=True, **kwargs):
|
|
158
161
|
ret_args = []
|
159
162
|
for arg in args:
|
160
163
|
c_arg = c_args.pop(0)
|
161
|
-
if isinstance(arg, (int, float, bool)):
|
164
|
+
if isinstance(arg, (int, float, bool, np.int64, np.float64)):
|
162
165
|
ret_args.append(c_arg.contents.value)
|
163
166
|
elif isinstance(arg, (str)):
|
164
167
|
ret_args.append(c_arg.value.decode('cp1252'))
|
@@ -184,7 +187,7 @@ class DLLWrapper(object):
|
|
184
187
|
|
185
188
|
def check_stop(self):
|
186
189
|
stop_code = 0
|
187
|
-
cstop_code =
|
190
|
+
cstop_code = c_longlong_p(c_longlong(stop_code))
|
188
191
|
getattr(self.lib, 'get_stop_code')(cstop_code)
|
189
192
|
if cstop_code.contents.value:
|
190
193
|
stop_msg = (" " * 1024).encode('cp1252')
|
h2lib/h2lib_signatures.py
CHANGED
@@ -128,6 +128,13 @@ end subroutine'''
|
|
128
128
|
end function'''
|
129
129
|
return self.get_lib_function('get_diameter')(rotor, restype=restype, check_stop=check_stop)
|
130
130
|
|
131
|
+
def _get_distributed_section_force_and_moment(self, link_type, link_id, nsec, frc, mom, mainbody_coo_nr, check_stop=True):
|
132
|
+
'''subroutine get_distributed_section_force_and_moment(link_type, link_id, nsec, frc, mom, mainbody_coo_nr) bind(C, name="get_distributed_section_force_and_moment")
|
133
|
+
integer*8, intent(in) :: link_type, link_id, nsec, mainbody_coo_nr
|
134
|
+
real(c_double), intent(out) :: frc(nsec,3), mom(nsec,3)
|
135
|
+
end subroutine'''
|
136
|
+
return self.get_lib_function('get_distributed_section_force_and_moment')(link_type, link_id, nsec, frc, mom, mainbody_coo_nr, check_stop=check_stop)
|
137
|
+
|
131
138
|
def _get_distributed_section_position_orientation(self, link_type, link_id, nsec, sec_pos, sec_ori, mainbody_coo_nr, check_stop=True):
|
132
139
|
'''subroutine get_distributed_section_position_orientation(link_type, link_id, nsec, sec_pos, sec_ori, mainbody_coo_nr) bind(C, name="get_distributed_section_position_orientation")
|
133
140
|
integer*8, intent(in) :: link_type, link_id, nsec, mainbody_coo_nr
|
@@ -168,7 +175,7 @@ end subroutine'''
|
|
168
175
|
def _get_mainbody_name(self, mainbody_nr, mainbody_name, check_stop=True):
|
169
176
|
'''subroutine get_mainbody_name(mainbody_nr, mainbody_name) bind(C, name="get_mainbody_name")
|
170
177
|
integer*8 :: mainbody_nr
|
171
|
-
character(kind=c_char, len=1), intent(
|
178
|
+
character(kind=c_char, len=1), intent(out) :: mainbody_name(256)
|
172
179
|
end subroutine'''
|
173
180
|
return self.get_lib_function('get_mainbody_name')(mainbody_nr, mainbody_name, check_stop=check_stop)
|
174
181
|
|
@@ -369,13 +376,9 @@ end subroutine'''
|
|
369
376
|
def _initialize_distributed_sections(self, check_stop=True):
|
370
377
|
'''subroutine initialize_distributed_sections() bind(C, name="initialize_distributed_sections")
|
371
378
|
!DEC$ ATTRIBUTES DLLEXPORT :: initialize_distributed_sections
|
372
|
-
type (
|
373
|
-
type (
|
374
|
-
|
375
|
-
type (body_type),dimension(:),pointer :: b_vec
|
376
|
-
type (TBodySectionLink), pointer :: bsl
|
377
|
-
Type (Tmain_body_input),pointer :: mbdy
|
378
|
-
integer :: nnodes
|
379
|
+
type (Tseclink), dimension(:), pointer :: seclinks
|
380
|
+
type (Tbaselink) :: baselink
|
381
|
+
type (body_type), dimension(:), pointer :: b_vec
|
379
382
|
integer :: i
|
380
383
|
end subroutine'''
|
381
384
|
return self.get_lib_function('initialize_distributed_sections')(check_stop=check_stop)
|
@@ -417,25 +420,25 @@ end subroutine'''
|
|
417
420
|
end subroutine'''
|
418
421
|
return self.get_lib_function('set_aerosections_windspeed')(rotor, uvw, check_stop=check_stop)
|
419
422
|
|
420
|
-
def _set_cx_def(self,
|
421
|
-
'''subroutine set_cx_def(
|
422
|
-
|
423
|
+
def _set_cx_def(self, mainbody_nr, nsec, n_cols, cx_def, twist_in_deg, check_length, update_structure, error_code, check_stop=True):
|
424
|
+
'''subroutine set_cx_def(mainbody_nr, nsec, n_cols, cx_def, twist_in_deg, check_length, update_structure, error_code) bind(C, name="set_cx_def")
|
425
|
+
integer(kind=8), intent(in ) :: mainbody_nr
|
423
426
|
integer(kind=4), intent(in ) :: nsec, n_cols
|
424
427
|
real(kind=c_double), dimension(nsec, n_cols), intent(in ) :: cx_def
|
425
428
|
logical(kind=c_bool), intent(in ) :: twist_in_deg
|
426
429
|
logical(kind=c_bool), intent(in ) :: check_length
|
427
430
|
logical, intent(in ) :: update_structure
|
428
431
|
integer(kind=8), intent( out) :: error_code
|
429
|
-
character(kind=c_char, len=256) :: mbdy_name ! Same as main_body_name, but as string instead of an array of characters.
|
430
432
|
end subroutine'''
|
431
|
-
return self.get_lib_function('set_cx_def')(
|
433
|
+
return self.get_lib_function('set_cx_def')(mainbody_nr, nsec, n_cols, cx_def, twist_in_deg, check_length, update_structure, error_code, check_stop=check_stop)
|
432
434
|
|
433
|
-
def _set_distributed_section_force_and_moment(self, link_type, link_id, nsec,
|
434
|
-
'''subroutine set_distributed_section_force_and_moment(link_type, link_id, nsec,
|
435
|
-
integer*8, intent(in) :: link_type, link_id, nsec
|
436
|
-
|
435
|
+
def _set_distributed_section_force_and_moment(self, link_type, link_id, nsec, frc, mom, mainbody_coo_nr, check_stop=True):
|
436
|
+
'''subroutine set_distributed_section_force_and_moment(link_type, link_id, nsec, frc, mom, mainbody_coo_nr) bind(C, name="set_distributed_section_force_and_moment")
|
437
|
+
integer*8, intent(in) :: link_type, link_id, nsec
|
438
|
+
integer*8, intent(in) :: mainbody_coo_nr ! -1: section, 0: global, >0: mainbody nr
|
439
|
+
real(c_double), intent(inout) :: frc(nsec,3), mom(nsec,3)
|
437
440
|
end subroutine'''
|
438
|
-
return self.get_lib_function('set_distributed_section_force_and_moment')(link_type, link_id, nsec,
|
441
|
+
return self.get_lib_function('set_distributed_section_force_and_moment')(link_type, link_id, nsec, frc, mom, mainbody_coo_nr, check_stop=check_stop)
|
439
442
|
|
440
443
|
def _set_orientation_base(self, main_body_name, n_rows, mbdy_eulerang_table, angles_in_deg, reset_orientation, mbdy_ini_rotvec_d1, error_code, check_stop=True):
|
441
444
|
'''subroutine set_orientation_base(main_body_name, n_rows, mbdy_eulerang_table, angles_in_deg, reset_orientation, mbdy_ini_rotvec_d1, error_code) &
|
@@ -470,18 +473,17 @@ real*8, dimension(3) :: eulerang ! Euler angles associated to 1 r
|
|
470
473
|
end subroutine'''
|
471
474
|
return self.get_lib_function('set_orientation_relative')(main_body_1_name, node_1, main_body_2_name, node_2, n_rows, mbdy2_eulerang_table, angles_in_deg, reset_orientation, mbdy2_ini_rotvec_d1, error_code, check_stop=check_stop)
|
472
475
|
|
473
|
-
def _set_st(self,
|
474
|
-
'''subroutine set_st(
|
475
|
-
|
476
|
+
def _set_st(self, mainbody_nr, n_rows, n_cols, st, update_structure, error_code, check_stop=True):
|
477
|
+
'''subroutine set_st(mainbody_nr, n_rows, n_cols, st, update_structure, error_code) bind(C, name="set_st")
|
478
|
+
integer(kind=8), intent(in ) :: mainbody_nr
|
476
479
|
integer(kind=4), intent(in ) :: n_rows
|
477
480
|
integer(kind=4), intent(in ) :: n_cols
|
478
481
|
real(kind=c_double), dimension(n_rows, n_cols), intent(in ) :: st
|
479
482
|
logical, intent(in ) :: update_structure
|
480
483
|
integer(kind=8), intent( out) :: error_code
|
481
|
-
character(kind=c_char, len=256) :: mbdy_name ! Same as main_body_name, but as string instead of an array of characters.
|
482
484
|
type(Tmain_body_input), pointer :: main_body ! The main body whose st we want to update.
|
483
485
|
end subroutine'''
|
484
|
-
return self.get_lib_function('set_st')(
|
486
|
+
return self.get_lib_function('set_st')(mainbody_nr, n_rows, n_cols, st, update_structure, error_code, check_stop=check_stop)
|
485
487
|
|
486
488
|
def _set_variable_sensor_value(self, id, value, check_stop=True):
|
487
489
|
'''subroutine set_variable_sensor_value(id, value) bind(C, name="set_variable_sensor_value")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: h2lib
|
3
|
-
Version: 13.2.
|
4
|
-
Summary: Python interface to HAWC2 (13.2.
|
3
|
+
Version: 13.2.901
|
4
|
+
Summary: Python interface to HAWC2 (13.2.9+4-gfd77867)
|
5
5
|
Download-URL:
|
6
6
|
Author: Mads M. Pedersen, S.G.Horcas and N.G.Ramos
|
7
7
|
Author-email: mmpe@dtu.dk
|
@@ -0,0 +1,11 @@
|
|
1
|
+
h2lib/HAWC2Lib.dll,sha256=ikv5Z1T3KgYencvMIh7vknsz4Rb0WCXUYHqHP4yB6Jw,30718976
|
2
|
+
h2lib/__init__.py,sha256=f3fO4I6IEFRM9LaV2O3w9Pioj3GPI8qRl7P5Tg5ONtE,528
|
3
|
+
h2lib/_h2lib.py,sha256=2NDc-5FA-osp5y_BXD87BRN09PdkCv8VURuJiuEEyDU,49792
|
4
|
+
h2lib/_version.py,sha256=p3Cb0KBOLOlD_MTrkXgOLGOeROFDdySdMsp1qgMgu18,157
|
5
|
+
h2lib/distributed_sections.py,sha256=y9Tvl245pFfnHDGWD83057YVyjvyO6RRRD194QHjZ0o,9850
|
6
|
+
h2lib/dll_wrapper.py,sha256=i-u5k5cLA-UCfpTXGC-PPTY8CUdKIPMGlc__ZaSbUO0,13637
|
7
|
+
h2lib/h2lib_signatures.py,sha256=--bcqEclI_lNz5D5So8NW7IROevMW9qpSzC_lf84KHE,34368
|
8
|
+
h2lib-13.2.901.dist-info/METADATA,sha256=zRiRPyHzx76ypnKCA-R38zosqXTxVJ-b_OrHb1A2sKU,860
|
9
|
+
h2lib-13.2.901.dist-info/WHEEL,sha256=8UP9x9puWI0P1V_d7K2oMTBqfeLNm21CTzZ_Ptr0NXU,101
|
10
|
+
h2lib-13.2.901.dist-info/top_level.txt,sha256=y_a-tUqphEZQ_0nsWSMaSb21P8Lsd8hUxUdE9g2Dcbk,6
|
11
|
+
h2lib-13.2.901.dist-info/RECORD,,
|
h2lib-13.2.801.dist-info/RECORD
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
h2lib/HAWC2Lib.dll,sha256=2Xgsvaxib95gRbLWp0geN6YlNjT3KwosWI2OnkQv2Wo,30709248
|
2
|
-
h2lib/__init__.py,sha256=f3fO4I6IEFRM9LaV2O3w9Pioj3GPI8qRl7P5Tg5ONtE,528
|
3
|
-
h2lib/_h2lib.py,sha256=6_tAMtWP7l-JnnQO0CEYQ3g2YJK6nH_3psQ6m_mAhN0,49549
|
4
|
-
h2lib/_version.py,sha256=DQv5BXGD-oVxEOkppw-noN2BQMGFcm94JiVZ2azn0Ko,146
|
5
|
-
h2lib/distributed_sections.py,sha256=9mOgT0UI_A5EiGqtUHV8TEXNexI-CK7rUji5XUqhyBM,7717
|
6
|
-
h2lib/dll_wrapper.py,sha256=O_lGZ_w3FirjEn4FIE5OeZz30nwpufJB5sflVzf4Cc4,13446
|
7
|
-
h2lib/h2lib_signatures.py,sha256=SlZRM5WjtZ6iZWLIsnytHwFvvo-ZBCpHtPD9ugB0XP8,34185
|
8
|
-
h2lib-13.2.801.dist-info/METADATA,sha256=8mzje1p_knj3z3mL9qOItL4w2Q5re4UlplsDCno5fLE,849
|
9
|
-
h2lib-13.2.801.dist-info/WHEEL,sha256=8UP9x9puWI0P1V_d7K2oMTBqfeLNm21CTzZ_Ptr0NXU,101
|
10
|
-
h2lib-13.2.801.dist-info/top_level.txt,sha256=y_a-tUqphEZQ_0nsWSMaSb21P8Lsd8hUxUdE9g2Dcbk,6
|
11
|
-
h2lib-13.2.801.dist-info/RECORD,,
|
File without changes
|
File without changes
|