Do Nothing Analysis Interface Module (AIM)
This AIM does nothing but displays necessary compnents
customIndex

myAIM Overview

This section should provide an overview of the AIM's features and capabilites.

This AIM does nothing but displays the required software components.

List of Attributes

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

List of Units

This section should contain all the units that are needed to be set to perform analysis.

List of Inputs

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

Executing the AIM

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.

List of Outputs

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"

List of Examples

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!

Notes

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:

Author
POC: Bob Haimes (bob@g.nosp@m.eoce.nosp@m.ntric.nosp@m.tech.nosp@m..com)