|
Do Nothing Analysis Interface Module (AIM)
This AIM does nothing but displays necessary compnents
|
This section should provide an overview of the AIM's features and capabilites.
This AIM does nothing but displays the required software components.
This section should list all the attributes that can utilized and are specific to this AIM. This list should include all the attributes: attributes that are assigned to the geometry in the .csm and .udc scripts, and analysis related attributes that get appended in the python script.
Here is a list of Attributes in the geometry/csm script:
| Name | Value(s) | Description | Req/Opt |
|---|---|---|---|
| capsAIM | $myAIM | ||
| capsIntent | $STRUCTURES | ||
| $CFD | |||
| capsBound | $Top | Top Face | |
| $Bottom | Bottom Face | ||
| $Interface | Coincident Face – for transfers |
This section should contain all the units that are needed to be set to perform analysis.
This section should list all the inputs that can used as inputs.
Here is a list of Inputs:
| Name | Description | Units | Default value | Req/Opt |
|---|---|---|---|---|
| InputVariable | an example of the use of a bool | false | ||
| num | an example of using a real | 8.0 | ||
| Mach | mach number | NULL (unfilled) | ||
| Mesh_Format | an example of a string variable | NULL | ||
| Table | an example of using a table |
This section should describe how this AIM gets executed: whether it is gets executed automagically during the [aimPreAnalysis]; or if user needs to add a system command for the executable. If the analysis is run via executable, the location of the executable and available command-line options should be listed.
This section should list all the outputs that get generated after executing this AIM. These outputs could be parsed data from [aimPostAnalysis] and/or derived data that have been processed from [aimCalcOutput]
Here is a list of Outputs:
| Name | Description | Units | Req/Opt |
|---|---|---|---|
| sqrtNum | the square root of input "num" |
This section should list the descriptive and non-descriptive examples that demonstrate how to use this AIM: creating geometry via .csm file and executing the AIM via python script.
Here is an example of csm script that can be used to create geometry. This file is located at doc/aim_text/case.csm
# modified from joinblend4
attribute capsLength $cm
despmtr num 8
dimension x num 1 1
dimension ymin num 1 1
dimension zmin num 1 1
dimension zmax num 1 1
despmtr x " 7.3; 8.4; 10.4; 11.3; 12.3; 13.8; 14.4; 17.2"
despmtr ymin " -1.25; -1.9; -2.1; -2.1; -2.1; -2.1; -2.1; -2.1"
despmtr zmin "-0.825; -0.8125; -0.8; -0.775; -0.75; -0.7; -0.69; -0.1"
despmtr zmax " 0.825; 0.8125; 0.8; 0.775; 0.75; 0.7; 0.69; 0.1"
outpmtr pVol
outpmtr cVol
# forward part
mark
patbeg i num-1
udprim ellipse ry abs(ymin[i,1]) rz (zmax[i,1]-zmin[i,1])/2
translate x[i,1] 0 (zmax[i,1]+zmin[i,1])/2
patend
blend
select face 1
attribute capsBound $Top
select face 2
attribute capsBound $Bottom
select face 4
attribute capsBound $Interface
# scribe the part
udprim box dy 5.0 dz 5.0
translate 10.5 0.0 0.0
subtract
select body
attribute capsAIM $myAIM
attribute capsIntent $CFD
set pVol @volume
# rearward part
mark
set i num-1
udprim ellipse ry abs(ymin[i,1]) rz (zmax[i,1]-zmin[i,1])/2
translate x[i,1] 0 (zmax[i,1]+zmin[i,1])/2
set i num
udprim ellipse ry abs(ymin[i,1]) rz (zmax[i,1]-zmin[i,1])/2
translate x[i,1] 0 (zmax[i,1]+zmin[i,1])/2
blend
select body
# attribute capsLength $cm
attribute capsAIM $myAIM
attribute capsIntent $STRUCTURES
set cVol @volume
select face 1
attribute capsBound $Top
attribute _color $lred
select face 2
attribute capsBound $Bottom
attribute _color $lred
select face 3
attribute capsBound $Interface
attribute _color $lred
select face 4
attribute _color $lred
# join bodies
#join
dump myExample/Scratch/case.egads 0 1
catbeg -19
dump case.egads 0 1
catend
end
The execution of this csm script should result in a geometry representation shown below:
Here is an example of python script that can be used to run theAIM analysis for the geometry, shown above.
import pyCAPS
from pyOCSM import esp
# Instantiate our CAPS problem "myProblem"
print("Loading file into our Problem")
myProblem = pyCAPS.Problem(problemName="myExample", capsFile="case.csm")
# Load our session aim
myAIM = myProblem.analysis.create(aim = "myAIM")
# Get current value of our first input
value = myAIM.input.num
print("Default num =", value)
myAIM.input.num = 16.0
value = myAIM.input.num
print("Current num =", value)
# AIM autoExecutes
# Get an output
value = myAIM.output.sqrtNum
print("Computed sqrtNum =", value)
assert(value == 4.0)
print(" ")
The resulting output log from the run is shown below:
--> enter ocsmLoad(filename=/Users/haimes/Desktop/Geocentric/PluginTraining26/exercises/session07/case.csm)
nextline ( 0: 1)[ 1]: # modified from joinblend4
nextline ( 0: 2)[ 1]:
nextline ( 0: 3)[ 1]: attribute capsLength $cm
nextline ( 0: 4)[ 1]:
nextline ( 0: 5)[ 1]: despmtr num 8
nextline ( 0: 6)[ 1]: dimension x num 1 1
nextline ( 0: 7)[ 2]: dimension ymin num 1 1
nextline ( 0: 8)[ 3]: dimension zmin num 1 1
nextline ( 0: 9)[ 4]: dimension zmax num 1 1
nextline ( 0: 10)[ 5]:
nextline ( 0: 11)[ 5]: despmtr x 7.3;8.4;10.4;11.3;12.3;13.8;14.4;17.2
nextline ( 0: 12)[ 5]: despmtr ymin -1.25;-1.9;-2.1;-2.1;-2.1;-2.1;-2.1;-2.1
nextline ( 0: 13)[ 5]: despmtr zmin -0.825;-0.8125;-0.8;-0.775;-0.75;-0.7;-0.69;-0.1
nextline ( 0: 14)[ 5]: despmtr zmax 0.825;0.8125;0.8;0.775;0.75;0.7;0.69;0.1
nextline ( 0: 15)[ 5]:
nextline ( 0: 16)[ 5]: outpmtr pVol
nextline ( 0: 17)[ 5]: outpmtr cVol
nextline ( 0: 18)[ 5]:
nextline ( 0: 19)[ 5]: # forward part
nextline ( 0: 20)[ 5]: mark
nextline ( 0: 21)[ 6]: patbeg i num-1
nextline ( 0: 22)[ 7]: udprim ellipse ry abs(ymin[i,1]) rz (zmax[i,1]-zmin[i,1])/2
nextline ( 0: 23)[ 8]: translate x[i,1] 0 (zmax[i,1]+zmin[i,1])/2
nextline ( 0: 24)[ 9]: patend
nextline ( 0: 25)[ 10]: blend
nextline ( 0: 26)[ 11]:
nextline ( 0: 27)[ 11]: select face 1
nextline ( 0: 28)[ 12]: attribute capsBound $Top
nextline ( 0: 29)[ 12]: select face 2
nextline ( 0: 30)[ 13]: attribute capsBound $Bottom
nextline ( 0: 31)[ 13]: select face 4
nextline ( 0: 32)[ 14]: attribute capsBound $Interface
nextline ( 0: 33)[ 14]:
nextline ( 0: 34)[ 14]: # scribe the part
nextline ( 0: 35)[ 14]:
nextline ( 0: 36)[ 14]: udprim box dy 5.0 dz 5.0
nextline ( 0: 37)[ 15]: translate 10.5 0.0 0.0
nextline ( 0: 38)[ 16]: subtract
nextline ( 0: 39)[ 17]:
nextline ( 0: 40)[ 17]: select body
nextline ( 0: 41)[ 18]: attribute capsAIM $myAIM
nextline ( 0: 42)[ 18]: attribute capsIntent $CFD
nextline ( 0: 43)[ 18]: set pVol @volume
nextline ( 0: 44)[ 19]:
nextline ( 0: 45)[ 19]: # rearward part
nextline ( 0: 46)[ 19]: mark
nextline ( 0: 47)[ 20]: set i num-1
nextline ( 0: 48)[ 21]: udprim ellipse ry abs(ymin[i,1]) rz (zmax[i,1]-zmin[i,1])/2
nextline ( 0: 49)[ 22]: translate x[i,1] 0 (zmax[i,1]+zmin[i,1])/2
nextline ( 0: 50)[ 23]:
nextline ( 0: 51)[ 23]: set i num
nextline ( 0: 52)[ 24]: udprim ellipse ry abs(ymin[i,1]) rz (zmax[i,1]-zmin[i,1])/2
nextline ( 0: 53)[ 25]: translate x[i,1] 0 (zmax[i,1]+zmin[i,1])/2
nextline ( 0: 54)[ 26]: blend
nextline ( 0: 55)[ 27]:
nextline ( 0: 56)[ 27]: select body
nextline ( 0: 57)[ 28]: # attribute capsLength $cm
nextline ( 0: 58)[ 28]: attribute capsAIM $myAIM
nextline ( 0: 59)[ 28]: attribute capsIntent $STRUCTURES
nextline ( 0: 60)[ 28]: set cVol @volume
nextline ( 0: 61)[ 29]:
nextline ( 0: 62)[ 29]: select face 1
nextline ( 0: 63)[ 30]: attribute capsBound $Top
nextline ( 0: 64)[ 30]: attribute _color $lred
nextline ( 0: 65)[ 30]: select face 2
nextline ( 0: 66)[ 31]: attribute capsBound $Bottom
nextline ( 0: 67)[ 31]: attribute _color $lred
nextline ( 0: 68)[ 31]: select face 3
nextline ( 0: 69)[ 32]: attribute capsBound $Interface
nextline ( 0: 70)[ 32]: attribute _color $lred
nextline ( 0: 71)[ 32]: select face 4
nextline ( 0: 72)[ 33]: attribute _color $lred
nextline ( 0: 73)[ 33]:
nextline ( 0: 74)[ 33]: # join bodies
nextline ( 0: 75)[ 33]: #join
nextline ( 0: 76)[ 33]:
nextline ( 0: 77)[ 33]: dump myExample/Scratch/case.egads 0 1
nextline ( 0: 78)[ 34]: catbeg -19
nextline ( 0: 79)[ 35]: dump case.egads 0 1
nextline ( 0: 80)[ 36]: catend
nextline ( 0: 81)[ 37]:
nextline ( 0: 82)[ 37]: end
--> enter ocsmCheck()
--> checks passed
--> enter ocsmSave(filename=/Users/haimes/Desktop/Geocentric/PluginTraining26/exercises/session07/myExample/Scratch/capsRestart.cpc)
--> enter ocsmCheck()
--> checks passed
--> enter ocsmBuild(buildTo=0)
EGADS version 1.29 (with OpenCASCADE 7.8.1)
executing [ 1] dimension: x 8.00000 1.00000
executing [ 2] dimension: ymin 8.00000 1.00000
executing [ 3] dimension: zmin 8.00000 1.00000
executing [ 4] dimension: zmax 8.00000 1.00000
executing [ 5] mark:
Mark created
executing [ 6] patbeg: i 7.00000
pattern counter: i = 1
executing [ 7] udprim: ellipse ry 1.25000 rz 0.82500 (compiled code)
Body 1 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 8] translate: 7.30000 0.00000 0.00000
Body 2 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 9] patend:
pattern counter: i = 2
executing [ 7] udprim: ellipse ry 1.90000 rz 0.81250 (compiled code)
Body 3 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 8] translate: 8.40000 0.00000 0.00000
Body 4 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 9] patend:
pattern counter: i = 3
executing [ 7] udprim: ellipse ry 2.10000 rz 0.80000 (compiled code)
Body 5 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 8] translate: 10.40000 0.00000 0.00000
Body 6 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 9] patend:
pattern counter: i = 4
executing [ 7] udprim: ellipse ry 2.10000 rz 0.77500 (compiled code)
Body 7 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 8] translate: 11.30000 0.00000 0.00000
Body 8 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 9] patend:
pattern counter: i = 5
executing [ 7] udprim: ellipse ry 2.10000 rz 0.75000 (compiled code)
Body 9 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 8] translate: 12.30000 0.00000 0.00000
Body 10 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 9] patend:
pattern counter: i = 6
executing [ 7] udprim: ellipse ry 2.10000 rz 0.70000 (compiled code)
Body 11 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 8] translate: 13.80000 0.00000 0.00000
Body 12 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 9] patend:
pattern counter: i = 7
executing [ 7] udprim: ellipse ry 2.10000 rz 0.69000 (compiled code)
Body 13 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 8] translate: 14.40000 0.00000 0.00000
Body 14 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 9] patend:
executing [ 10] blend: 0 0 0.00000 0.00000 0.00000 0.00000
blending 7 Xsects with 2 Strips each...
Body 15 created (toler= 1.0000e-07, nnode= 4, nedge= 6, nface= 4, type=3)
executing [ 11] select: face 1
putting Branch Attributes on Face 1
executing [ 12] select: face 2
putting Branch Attributes on Face 2
executing [ 13] select: face 4
putting Branch Attributes on Face 4
executing [ 14] udprim: box dy 5.00000 dz 5.00000 (compiled code)
Body 16 created (toler= 1.0000e-07, nnode= 4, nedge= 4, nface= 1, type=2)
executing [ 15] translate: 10.50000 0.00000 0.00000
Body 17 created (toler= 1.0000e-07, nnode= 4, nedge= 4, nface= 1, type=2)
executing [ 16] subtract: none 1.00000 0.0000e+00 0.0000e+00
Body 18 created (toler= 5.0000e-06, nnode= 6, nedge= 10, nface= 6, type=3)
executing [ 17] select: body
putting Branch Attributes on Body
executing [ 18] set: pVol @volume
pVol = 34.64152 0.00000
executing [ 19] mark:
Mark created
executing [ 20] set: i num-1
i = 7.00000 0.00000
executing [ 21] udprim: ellipse ry 2.10000 rz 0.69000 (compiled code)
Body 19 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 22] translate: 14.40000 0.00000 0.00000
Body 20 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 23] set: i num
i = 8.00000 0.00000
executing [ 24] udprim: ellipse ry 2.10000 rz 0.10000 (compiled code)
Body 21 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 25] translate: 17.20000 0.00000 0.00000
Body 22 created (toler= 1.0000e-07, nnode= 2, nedge= 2, nface= 1, type=2)
executing [ 26] blend: 0 0 0.00000 0.00000 0.00000 0.00000
blending 2 Xsects with 2 Strips each...
Body 23 created (toler= 1.0000e-07, nnode= 4, nedge= 6, nface= 4, type=3)
executing [ 27] select: body
putting Branch Attributes on Body
executing [ 28] set: cVol @volume
cVol = 7.29656 0.00000
executing [ 29] select: face 1
putting Branch Attributes on Face 1
executing [ 30] select: face 2
putting Branch Attributes on Face 2
executing [ 31] select: face 3
putting Branch Attributes on Face 3
executing [ 32] select: face 4
putting Branch Attributes on Face 4
executing [ 33] dump: myExample/Scratch/case.egads 0.00000 1.00000 0.00000 . 0.00000
Body 23 dumped
Body 18 dumped
executing [ 34] catbeg: -19
finalizing:
Loading file into our Problem
Default num = 8.0
Current num = 16.0
Computed sqrtNum = 4.0
myAIM/aimUpdateState aim_newGeometry = 0!
......GeometryIn:
......... 1: num 2 (1*1)
............ 8.00000
......... 2: x 2 (8*1)
............ 7.30000 8.40000 10.40000 11.30000 12.30000 13.80000 14.40000 17.20000
......... 3: ymin 2 (8*1)
............ -1.25000 -1.90000 -2.10000 -2.10000 -2.10000 -2.10000 -2.10000 -2.10000
......... 4: zmin 2 (8*1)
............ -0.82500 -0.81250 -0.80000 -0.77500 -0.75000 -0.70000 -0.69000 -0.10000
......... 5: zmax 2 (8*1)
............ 0.82500 0.81250 0.80000 0.77500 0.75000 0.70000 0.69000 0.10000
......GeometryOut:
......... 1: pVol 6 (1*1)
............ 34.64152
......... 2: cVol 6 (1*1)
............ 7.29656
......AnalysisIn:
......... 1: InputVariable 0 (1*1) (null)
............ 0
......... 2: num 2 (1*1) (null)
............ 16.00000
......... 3: Mach 2 (1*1) (null)
............ 0.00000
......... 4: Mesh_Format 3 (1*1) (null)
............ (null)
......... 5: Table 4 (1*3) (null)
............ Entry1 -- Value1
............ Entry2 -- Value2
............ Entry3 -- Value3
EGADS Info: 0 Objects, 0 Reference in Use (of 1037) at Close!
This section should include applicable Copyright info, License info and Author/s of the AIM and contact info. Optionally, Author/s of the documentation (if different from AIM writer) for the AIM and info should also be included. For Example:
An Example:
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.