Skip to content

Commit 98ac152

Browse files
committed
add function to support include_transform
1 parent f9e2e5d commit 98ac152

20 files changed

+1766
-1296
lines changed

src/ansys/dyna/core/pre/Server/kwprocess.proto

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,21 @@ message kwFileNameReply {
2222
bool ret = 1;
2323
}
2424

25+
message IncludeTransformRequest {
26+
string filename = 1;
27+
int32 idnoff = 2;
28+
int32 ideoff = 3;
29+
int32 idpoff = 4;
30+
int32 idmoff = 5;
31+
int32 idsoff = 6;
32+
int32 idfoff = 7;
33+
int32 tranid = 8;
34+
}
35+
36+
message IncludeTransformReply {
37+
int32 answer = 1;
38+
}
39+
2540
//---control_* card
2641
message TimestepRequest {
2742
float tssfac = 1;
@@ -715,6 +730,16 @@ message DefineBoxReply {
715730
int32 boxid = 1;
716731
}
717732

733+
message DefineTransformationRequest {
734+
int32 tranid = 1;
735+
repeated string option = 2;
736+
repeated float param = 3;
737+
}
738+
739+
message DefineTransformationReply {
740+
int32 id = 1;
741+
}
742+
718743
message DefineDEMeshSurfaceRequest {
719744
int32 sid = 1;
720745
int32 type = 2;
@@ -1906,6 +1931,7 @@ message GeneralKWDReply {
19061931
service kwC2S {
19071932
rpc kwSetFileName(kwFileName) returns(kwFileNameReply) {}
19081933
rpc Upload(stream Chunk) returns (kwFileReply) {}
1934+
rpc CreateIncludeTransform(IncludeTransformRequest) returns (IncludeTransformReply) {}
19091935
//---CONTROL
19101936
rpc CreateTimestep(TimestepRequest) returns (TimestepReply) {}
19111937
rpc CreateTermination(TerminationRequest) returns (TerminationReply) {}
@@ -1994,6 +2020,7 @@ service kwC2S {
19942020
rpc CreateDefineVector(DefineVectorRequest) returns (DefineVectorReply) {}
19952021
rpc CreateDefineFunction(DefineFunctionRequest) returns (DefineFunctionReply) {}
19962022
rpc CreateDefineBox(DefineBoxRequest) returns (DefineBoxReply) {}
2023+
rpc CreateDefineTransformation(DefineTransformationRequest) returns (DefineTransformationReply) {}
19972024
rpc CreateDefineDEMeshSurface(DefineDEMeshSurfaceRequest) returns (DefineDEMeshSurfaceReply) {}
19982025
rpc CreateDefineOrientation(DefineOrientationRequest) returns (DefineOrientationReply) {}
19992026
rpc CreateDefineSPHMassflowPlane(DefineSPHMassflowPlaneRequest) returns (DefineSPHMassflowPlaneReply) {}

src/ansys/dyna/core/pre/Server/kwprocess_pb2.py

Lines changed: 683 additions & 643 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ansys/dyna/core/pre/Server/kwprocess_pb2_grpc.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ def __init__(self, channel):
2424
request_serializer=kwprocess__pb2.Chunk.SerializeToString,
2525
response_deserializer=kwprocess__pb2.kwFileReply.FromString,
2626
)
27+
self.CreateIncludeTransform = channel.unary_unary(
28+
'/kwgrpc.kwC2S/CreateIncludeTransform',
29+
request_serializer=kwprocess__pb2.IncludeTransformRequest.SerializeToString,
30+
response_deserializer=kwprocess__pb2.IncludeTransformReply.FromString,
31+
)
2732
self.CreateTimestep = channel.unary_unary(
2833
'/kwgrpc.kwC2S/CreateTimestep',
2934
request_serializer=kwprocess__pb2.TimestepRequest.SerializeToString,
@@ -369,6 +374,11 @@ def __init__(self, channel):
369374
request_serializer=kwprocess__pb2.DefineBoxRequest.SerializeToString,
370375
response_deserializer=kwprocess__pb2.DefineBoxReply.FromString,
371376
)
377+
self.CreateDefineTransformation = channel.unary_unary(
378+
'/kwgrpc.kwC2S/CreateDefineTransformation',
379+
request_serializer=kwprocess__pb2.DefineTransformationRequest.SerializeToString,
380+
response_deserializer=kwprocess__pb2.DefineTransformationReply.FromString,
381+
)
372382
self.CreateDefineDEMeshSurface = channel.unary_unary(
373383
'/kwgrpc.kwC2S/CreateDefineDEMeshSurface',
374384
request_serializer=kwprocess__pb2.DefineDEMeshSurfaceRequest.SerializeToString,
@@ -836,6 +846,12 @@ def Upload(self, request_iterator, context):
836846
context.set_details('Method not implemented!')
837847
raise NotImplementedError('Method not implemented!')
838848

849+
def CreateIncludeTransform(self, request, context):
850+
"""Missing associated documentation comment in .proto file."""
851+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
852+
context.set_details('Method not implemented!')
853+
raise NotImplementedError('Method not implemented!')
854+
839855
def CreateTimestep(self, request, context):
840856
"""---CONTROL
841857
"""
@@ -1261,6 +1277,12 @@ def CreateDefineBox(self, request, context):
12611277
context.set_details('Method not implemented!')
12621278
raise NotImplementedError('Method not implemented!')
12631279

1280+
def CreateDefineTransformation(self, request, context):
1281+
"""Missing associated documentation comment in .proto file."""
1282+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1283+
context.set_details('Method not implemented!')
1284+
raise NotImplementedError('Method not implemented!')
1285+
12641286
def CreateDefineDEMeshSurface(self, request, context):
12651287
"""Missing associated documentation comment in .proto file."""
12661288
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1823,6 +1845,11 @@ def add_kwC2SServicer_to_server(servicer, server):
18231845
request_deserializer=kwprocess__pb2.Chunk.FromString,
18241846
response_serializer=kwprocess__pb2.kwFileReply.SerializeToString,
18251847
),
1848+
'CreateIncludeTransform': grpc.unary_unary_rpc_method_handler(
1849+
servicer.CreateIncludeTransform,
1850+
request_deserializer=kwprocess__pb2.IncludeTransformRequest.FromString,
1851+
response_serializer=kwprocess__pb2.IncludeTransformReply.SerializeToString,
1852+
),
18261853
'CreateTimestep': grpc.unary_unary_rpc_method_handler(
18271854
servicer.CreateTimestep,
18281855
request_deserializer=kwprocess__pb2.TimestepRequest.FromString,
@@ -2168,6 +2195,11 @@ def add_kwC2SServicer_to_server(servicer, server):
21682195
request_deserializer=kwprocess__pb2.DefineBoxRequest.FromString,
21692196
response_serializer=kwprocess__pb2.DefineBoxReply.SerializeToString,
21702197
),
2198+
'CreateDefineTransformation': grpc.unary_unary_rpc_method_handler(
2199+
servicer.CreateDefineTransformation,
2200+
request_deserializer=kwprocess__pb2.DefineTransformationRequest.FromString,
2201+
response_serializer=kwprocess__pb2.DefineTransformationReply.SerializeToString,
2202+
),
21712203
'CreateDefineDEMeshSurface': grpc.unary_unary_rpc_method_handler(
21722204
servicer.CreateDefineDEMeshSurface,
21732205
request_deserializer=kwprocess__pb2.DefineDEMeshSurfaceRequest.FromString,
@@ -2662,6 +2694,23 @@ def Upload(request_iterator,
26622694
options, channel_credentials,
26632695
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
26642696

2697+
@staticmethod
2698+
def CreateIncludeTransform(request,
2699+
target,
2700+
options=(),
2701+
channel_credentials=None,
2702+
call_credentials=None,
2703+
insecure=False,
2704+
compression=None,
2705+
wait_for_ready=None,
2706+
timeout=None,
2707+
metadata=None):
2708+
return grpc.experimental.unary_unary(request, target, '/kwgrpc.kwC2S/CreateIncludeTransform',
2709+
kwprocess__pb2.IncludeTransformRequest.SerializeToString,
2710+
kwprocess__pb2.IncludeTransformReply.FromString,
2711+
options, channel_credentials,
2712+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
2713+
26652714
@staticmethod
26662715
def CreateTimestep(request,
26672716
target,
@@ -3835,6 +3884,23 @@ def CreateDefineBox(request,
38353884
options, channel_credentials,
38363885
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
38373886

3887+
@staticmethod
3888+
def CreateDefineTransformation(request,
3889+
target,
3890+
options=(),
3891+
channel_credentials=None,
3892+
call_credentials=None,
3893+
insecure=False,
3894+
compression=None,
3895+
wait_for_ready=None,
3896+
timeout=None,
3897+
metadata=None):
3898+
return grpc.experimental.unary_unary(request, target, '/kwgrpc.kwC2S/CreateDefineTransformation',
3899+
kwprocess__pb2.DefineTransformationRequest.SerializeToString,
3900+
kwprocess__pb2.DefineTransformationReply.FromString,
3901+
options, channel_credentials,
3902+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
3903+
38383904
@staticmethod
38393905
def CreateDefineDEMeshSurface(request,
38403906
target,

src/ansys/dyna/core/pre/Server/kwserver.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,23 @@ def CreateTermination(self, request, context):
124124
self.kwdproc.newkeyword(newk)
125125
print("Termination Created...")
126126
return kwprocess_pb2.TerminationReply(answer=0)
127+
128+
def CreateIncludeTransform(self, request, context):
129+
filename = request.filename
130+
idnoff = request.idnoff
131+
ideoff = request.ideoff
132+
idpoff = request.idpoff
133+
idmoff = request.idmoff
134+
idsoff = request.idsoff
135+
idfoff = request.idfoff
136+
tranid = request.tranid
137+
card1 = filename
138+
card2 = str(idnoff) + "," + str(ideoff) + "," + str(idpoff) + "," + str(idmoff)+ "," + str(idsoff) + "," + str(idfoff)
139+
card5 = str(tranid)
140+
newk = "*INCLUDE_TRANSFORM\n" + card1 + "\n" + card2 + "\n\n\n" + card5
141+
self.kwdproc.newkeyword(newk)
142+
print("Include Transform Created...")
143+
return kwprocess_pb2.IncludeTransformReply(answer=0)
127144

128145
def CreateControlOutput(self, request, context):
129146
npopt = request.npopt
@@ -691,6 +708,21 @@ def CreateDefineBox(self, request, context):
691708
self.kwdproc.newkeyword(newk)
692709
print(f"DefineBox {boxid} Created...")
693710
return kwprocess_pb2.DefineBoxReply(boxid=boxid)
711+
712+
def CreateDefineTransformation(self, request, context):
713+
tranid = self.kwdproc.get_data(gdt.KWD_DEFINE_TRANSFORMATION_LASTID) + 1
714+
option = request.option
715+
param = request.param
716+
card1 = str(tranid)
717+
newk = "*DEFINE_TRANSFORMATION\n" + card1
718+
i=0
719+
for op in option:
720+
subcard = str(op)+ ","+str(param[i])+ "," + str(param[i+1])+ ","+str(param[i+2])+ "," + str(param[i+3])+ ","+str(param[i+4])+ "," + str(param[i+5])+ ","+str(param[i+6])
721+
newk += "\n" + subcard
722+
i+=7
723+
self.kwdproc.newkeyword(newk)
724+
print(f"Define Transformation {tranid} Created...")
725+
return kwprocess_pb2.DefineTransformationReply(id=tranid)
694726

695727
def CreateDefineDEMeshSurface(self, request, context):
696728
sid = request.sid
-2.57 MB
Binary file not shown.
19 KB
Binary file not shown.
20 KB
Binary file not shown.
19.5 KB
Binary file not shown.

src/ansys/dyna/core/pre/dynabase.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,33 @@ def __init__(self, x=0, y=0, z=0):
164164
self.z = z
165165

166166

167+
class Transform:
168+
"""Define a transformation."""
169+
170+
def __init__(self, option=None, param1=0, param2=0, param3=0, param4=0, param5=0, param6=0, param7=0):
171+
param = [option, param1, param2, param3, param4, param5, param6, param7]
172+
self.paramlist = []
173+
self.paramlist.append(param)
174+
175+
def add_transform(self, option=None, param1=0, param2=0, param3=0, param4=0, param5=0, param6=0, param7=0):
176+
"""Define a transformation matrix."""
177+
param = [option, param1, param2, param3, param4, param5, param6, param7]
178+
self.paramlist.append(param)
179+
180+
def create(self, stub):
181+
"""Create transformation."""
182+
options = []
183+
params = []
184+
for obj in self.paramlist:
185+
options.append(obj[0])
186+
for i in range(1, 8):
187+
params.append(obj[i])
188+
ret = stub.CreateDefineTransformation(DefineTransformationRequest(option=options, param=params))
189+
self.id = ret.id
190+
logging.info(f"Transformation {self.id} defined...")
191+
return self.id
192+
193+
167194
class Velocity:
168195
"""Define translational velocity."""
169196

@@ -647,6 +674,45 @@ def add(self, obj):
647674
"""Add entities in this object."""
648675
self.entities.append(obj)
649676

677+
def set_transform(self, filename=None, idnoff=0, ideoff=0, idpoff=0, idmoff=0, idsoff=0, idfoff=0, transform=None):
678+
"""Include independent input files containing model data,allow for node, element, and set
679+
IDs to be offset and for coordinates and constitutive parameters to be transformed andnscaled.
680+
681+
Parameters
682+
----------
683+
filename : string
684+
File name of file to be included in this keyword file.
685+
idnoff : int
686+
Offset to node ID.
687+
ideoff : int
688+
Offset to element ID.
689+
idpoff : int
690+
Offset to part ID.
691+
idmoff : int
692+
Offset to material ID.
693+
idsoff : int
694+
Offset to set ID.
695+
idfoff : int
696+
Offset to function ID, table ID, and curve ID.
697+
transform : Transform
698+
Define a transformation.
699+
"""
700+
tranid = transform.create(self.stub)
701+
ret = self.stub.CreateIncludeTransform(
702+
IncludeTransformRequest(
703+
filename=filename,
704+
idnoff=idnoff,
705+
ideoff=ideoff,
706+
idpoff=idpoff,
707+
idmoff=idmoff,
708+
idsoff=idsoff,
709+
idfoff=idfoff,
710+
tranid=tranid,
711+
)
712+
)
713+
logging.info("Include transform Created...")
714+
return ret
715+
650716
def save_file(self):
651717
"""Save keyword files.
652718

src/ansys/dyna/core/pre/dynaem.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,15 +624,17 @@ class Isopotential:
624624
set : Set
625625
Segment Set or Node Set.
626626
"""
627+
627628
isopotlist = []
629+
628630
def __init__(self, set=None):
629631
self.stub = DynaBase.get_stub()
630632
self.set = set
631633
self.id = 0
632634

633635
def create(self):
634636
"""Create Isopotential."""
635-
isoinfo = [self.set.type,self.set.nodes]
637+
isoinfo = [self.set.type, self.set.nodes]
636638
if isoinfo in Isopotential.isopotlist:
637639
pass
638640
id, settype = 0, 1

0 commit comments

Comments
 (0)