https://github.com/geodynamics/citcoms
Revision 2b8ed1fa028a0457da2a8c686072407ed5c0d930 authored by Thorsten Becker on 22 August 2012, 21:21:52 UTC, committed by Thorsten Becker on 22 August 2012, 21:21:52 UTC
"a new method of finding the element of a tracer that is too close to
an element boundary. Up to now such a tracer was shifted by a constant
epsilon theta and phi. If the element boundary is parallel to this
theta/phi direction it is not guaranteed to work well (thus the
number_of_tries check), and additionally I got the problem that
sometimes all elements refuse this tracer. Eh checked in a workaround
for this (r15742), deleting orphan tracers in Tracer_setup.c. Because
I did not know this, I created my own bugfix moving the tracers an
epsilon amount orthogonal to all boundaries that are too close. In
order to save computing time I use the already computed vectors for
the element boundaries (this assumes that the element boundaries are
nearly orthogonal to each other, but unless somebody tries to change
CitcomS elements that should work fine). The shift happens now in
cartesian coordinates since the boundary-vectors are cartesian and the
radius-coordinate of the tracer is normalized prior to this check
anyway, so I just need to re-normalize it after the shift. For now I
did not touch all the now (hopefully) useless security checks but as
far as I can see they do no harm either, so we can remove them later."



1 parent 11854a5
Raw File
Tip revision: 2b8ed1fa028a0457da2a8c686072407ed5c0d930 authored by Thorsten Becker on 22 August 2012, 21:21:52 UTC
Implemented improved tracer fix by Rene.
Tip revision: 2b8ed1f
visRegional.net.in
//
// time: Wed Oct  4 16:13:27 2006
//
// version: 3.2.0 (format), 4.3.2 (DX)
//
//
//
// macro reference (indirect): RTFtoXYZ @dxmacrodir@/RTFtoXYZ.net
//
// macro reference (indirect): CitcomSTemperature @dxmacrodir@/CitcomSTemperature.net
//
// macro reference (indirect): VelocityRTFtoXYZ @dxmacrodir@/VelocityRTFtoXYZ.net
//
// macro reference (indirect): CitcomSVelocity @dxmacrodir@/CitcomSVelocity.net
//
// macro reference (indirect): CitcomSViscosity @dxmacrodir@/CitcomSViscosity.net
//
// macro reference (direct): CitcomSImport @dxmacrodir@/CitcomSImport.net
include "CitcomSImport.net"
//
// macro reference (direct): ShowSphere @dxmacrodir@/ShowSphere.net
include "ShowSphere.net"
//
// MODULE main
//
// comment: A general purpose program for gridded, three-dimensional, multivariate data has been used. 
// comment: 
// comment: For scalar, position-dependent data, a translucent isosurface has been drawn. Otherwise glyphs have been drawn. You can choose which variable to visualize as an isosurface (or glyphs), which variable to visualize as color on the isosurface or glyphs, and which variable to visualize on the cutting plane through the data. You can also modify the normal (orientation) of the cutting plane.
// comment: To modify the colormap, use Open All Colormap Editors from the Windows menu.
// comment: 
// comment: If you would like to modify or use this visual program in the future, choose Open Visual Program Editor from the Windows menu, and then choose Save As from the File menu of the VPE.
// page assignment: boundary	order=7, windowed=0, showing=0
// page assignment: colormap	order=3, windowed=0, showing=0
// page assignment: glyph	order=4, windowed=0, showing=0
// page assignment: image	order=8, windowed=0, showing=0
// page assignment: import	order=2, windowed=0, showing=1
// page assignment: isosurface	order=6, windowed=0, showing=0
// page assignment: slab	order=5, windowed=0, showing=0
// workspace: width = 459, height = 512
// layout: snap = 0, width = 50, height = 50, align = NN
//
macro main(
) -> (
) {
    // 
    // node AutoColor[3]: x = 104, y = 299, inputs = 10, label = AutoColor
    // input[2]: defaulting = 1, visible = 1, type = 5, value = 0.75
    // input[7]: visible = 0
    // page group: isosurface
    //
main_AutoColor_3_out_1,
main_AutoColor_3_out_2 = 
    AutoColor(
    main_AutoColor_3_in_1,
    main_AutoColor_3_in_2,
    main_AutoColor_3_in_3,
    main_AutoColor_3_in_4,
    main_AutoColor_3_in_5,
    main_AutoColor_3_in_6,
    main_AutoColor_3_in_7,
    main_AutoColor_3_in_8,
    main_AutoColor_3_in_9,
    main_AutoColor_3_in_10
    ) [instance: 3, cache: 1];
    // 
    // node FileSelector[1]: x = 86, y = 49, inputs = 0, label = FileSelector
    // output[1]: visible = 1, type = 32, value = "samples/regtest.cap00.100.general"
    // output[2]: visible = 1, type = 32, value = "regtest.cap00.100.general"
    // page group: import
    //
    // 
    // node Integer[8]: x = 205, y = 49, inputs = 11, label = Integer
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Integer_8"
    // input[3]: defaulting = 0, visible = 0, type = 1, value = 2 
    // input[5]: defaulting = 1, visible = 0, type = 1, value = 1
    // input[6]: defaulting = 1, visible = 0, type = 1, value = 100
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.0
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 0
    // output[1]: visible = 1, type = 1, value = 2 
    // page group: import
    //
    // 
    // node CitcomSImport[2]: x = 119, y = 175, inputs = 2, label = CitcomSImport
    // page group: import
    //
main_CitcomSImport_2_out_1,
main_CitcomSImport_2_out_2,
main_CitcomSImport_2_out_3 = 
    CitcomSImport(
    main_FileSelector_1_out_1,
    main_Integer_8_out_1
    ) [instance: 2, cache: 1];
    // 
    // node Transmitter[20]: x = 43, y = 376, inputs = 1, label = velocity
    // page group: import
    //
velocity = main_CitcomSImport_2_out_1;
    // 
    // node Receiver[92]: x = 160, y = 15, inputs = 1, label = velocity
    // page group: glyph
    //
main_Receiver_92_out_1[cache: 0] = velocity;
    // 
    // node AutoGlyph[9]: x = 88, y = 141, inputs = 7, label = AutoGlyph
    // page group: glyph
    //
main_AutoGlyph_9_out_1 = 
    AutoGlyph(
    main_Receiver_92_out_1,
    main_AutoGlyph_9_in_2,
    main_AutoGlyph_9_in_3,
    main_AutoGlyph_9_in_4,
    main_AutoGlyph_9_in_5,
    main_AutoGlyph_9_in_6,
    main_AutoGlyph_9_in_7
    ) [instance: 9, cache: 1];
    // 
    // node Transmitter[16]: x = 133, y = 371, inputs = 1, label = temperature
    // page group: import
    //
temperature = main_CitcomSImport_2_out_2;
    // 
    // node Receiver[86]: x = 226, y = 50, inputs = 1, label = temperature
    // page group: boundary
    //
main_Receiver_86_out_1[cache: 0] = temperature;
    // 
    // node ShowBoundary[2]: x = 239, y = 148, inputs = 2, label = ShowBoundary
    // page group: boundary
    //
main_ShowBoundary_2_out_1 = 
    ShowBoundary(
    main_Receiver_86_out_1,
    main_ShowBoundary_2_in_2
    ) [instance: 2, cache: 1];
    // 
    // node Color[22]: x = 283, y = 253, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "black"
    // input[3]: defaulting = 0, visible = 1, type = 5, value = 0.1
    // page group: boundary
    //
main_Color_22_out_1 = 
    Color(
    main_ShowBoundary_2_out_1,
    main_Color_22_in_2,
    main_Color_22_in_3,
    main_Color_22_in_4,
    main_Color_22_in_5
    ) [instance: 22, cache: 1];
    // 
    // node Transmitter[10]: x = 286, y = 350, inputs = 1, label = boundary
    // page group: boundary
    //
boundary = main_Color_22_out_1;
    // 
    // node Receiver[77]: x = 9, y = 207, inputs = 1, label = boundary
    // page group: image
    //
main_Receiver_77_out_1[cache: 0] = boundary;
    // 
    // node Receiver[96]: x = 41, y = 28, inputs = 1, label = temperature
    // page group: slab
    //
main_Receiver_96_out_1[cache: 0] = temperature;
    // 
    // node Integer[9]: x = 167, y = 26, inputs = 11, label = Integer
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Integer_9"
    // input[3]: defaulting = 0, visible = 0, type = 1, value = 1 
    // input[5]: defaulting = 1, visible = 0, type = 1, value = 0
    // input[6]: defaulting = 1, visible = 0, type = 1, value = 2
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.0
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 0
    // output[1]: visible = 1, type = 1, value = 1 
    // page group: slab
    //
    // 
    // node Integer[1]: x = 238, y = 28, inputs = 11, label = Layer
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Integer_1"
    // input[3]: defaulting = 0, visible = 0, type = 1, value = 4 
    // input[5]: defaulting = 1, visible = 0, type = 1, value = 0
    // input[6]: defaulting = 1, visible = 0, type = 1, value = 300
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.0
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 0
    // output[1]: visible = 1, type = 1, value = 4 
    // page group: slab
    //
    // 
    // node Slab[1]: x = 158, y = 205, inputs = 4, label = Slab
    // input[2]: defaulting = 1, visible = 1, type = 1, value = 2
    // input[4]: defaulting = 0, visible = 0, type = 1, value = 0
    // page group: slab
    //
main_Slab_1_out_1 = 
    Slab(
    main_Receiver_96_out_1,
    main_Integer_9_out_1,
    main_Integer_1_out_1,
    main_Slab_1_in_4
    ) [instance: 1, cache: 1];
    // 
    // node Receiver[98]: x = 147, y = 53, inputs = 1, label = temperature
    // page group: colormap
    //
main_Receiver_98_out_1[cache: 0] = temperature;
    // 
    // node Colormap[5]: x = 176, y = 159, inputs = 19, label = Colormap
    // input[1]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.666667] [1.0 0.0] }
    // input[2]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] }
    // input[3]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] }
    // input[4]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] }
    // input[5]: defaulting = 0, visible = 0, type = 32, value = "Colormap_5"
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 0.0
    // input[8]: defaulting = 1, visible = 0, type = 5, value = 1.0
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 20
    // input[12]: defaulting = 0, visible = 0, type = 16777221, value = { 0.0 1.0 }
    // input[17]: defaulting = 0, visible = 0, type = 5, value = 0.0
    // input[18]: defaulting = 0, visible = 0, type = 5, value = 1.0
    // page group: colormap
    // window: position = (0.0000,0.0000), size = 0.5078x0.4395
    //
main_Colormap_5_out_1[cache: 2],
main_Colormap_5_out_2[cache: 2] = 
    Colormap(
    main_Colormap_5_in_1,
    main_Colormap_5_in_2,
    main_Colormap_5_in_3,
    main_Colormap_5_in_4,
    main_Colormap_5_in_5,
    main_Receiver_98_out_1,
    main_Colormap_5_in_7,
    main_Colormap_5_in_8,
    main_Colormap_5_in_9,
    main_Colormap_5_in_10,
    main_Colormap_5_in_11,
    main_Colormap_5_in_12,
    main_Colormap_5_in_13,
    main_Colormap_5_in_14,
    main_Colormap_5_in_15,
    main_Colormap_5_in_16,
    main_Colormap_5_in_17,
    main_Colormap_5_in_18,
    main_Colormap_5_in_19
    ) [instance: 5, cache: 1];
    // 
    // node Transmitter[25]: x = 162, y = 274, inputs = 1, label = colormap
    // page group: colormap
    //
colormap = main_Colormap_5_out_1;
    // 
    // node Receiver[99]: x = 273, y = 206, inputs = 1, label = colormap
    // page group: slab
    //
main_Receiver_99_out_1[cache: 0] = colormap;
    // 
    // node Color[24]: x = 182, y = 306, inputs = 5, label = Color
    // input[2]: defaulting = 1, visible = 1, type = 8, value = [.1  .1 .1]
    // input[3]: defaulting = 1, visible = 1, type = 5, value = 0.75
    // page group: slab
    //
main_Color_24_out_1 = 
    Color(
    main_Slab_1_out_1,
    main_Receiver_99_out_1,
    main_Color_24_in_3,
    main_Color_24_in_4,
    main_Color_24_in_5
    ) [instance: 24, cache: 1];
    // 
    // node Transmitter[13]: x = 184, y = 421, inputs = 1, label = slab
    // page group: slab
    //
slab = main_Color_24_out_1;
    // 
    // node Receiver[81]: x = 4, y = 115, inputs = 1, label = slab
    // page group: image
    //
main_Receiver_81_out_1[cache: 0] = slab;
    // 
    // node Receiver[90]: x = 114, y = 43, inputs = 1, label = temperature
    // page group: isosurface
    //
main_Receiver_90_out_1[cache: 0] = temperature;
    // 
    // node ScalarList[1]: x = 247, y = 43, inputs = 11, label = ScalarList
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "ScalarList_1"
    // input[3]: defaulting = 0, visible = 0, type = 16777221, value = { 0.8 0.4 }
    // input[5]: defaulting = 1, visible = 0, type = 5, value = -1.0
    // input[6]: defaulting = 1, visible = 0, type = 5, value = 1.0
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.0
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 2
    // output[1]: visible = 1, type = 16777221, value = { 0.8 0.4 }
    // page group: isosurface
    //
    // 
    // node Isosurface[3]: x = 184, y = 205, inputs = 6, label = Isosurface
    // input[2]: defaulting = 1, visible = 1, type = 5, value = 0.0000001
    // page group: isosurface
    //
main_Isosurface_3_out_1 = 
    Isosurface(
    main_Receiver_90_out_1,
    main_ScalarList_1_out_1,
    main_Isosurface_3_in_3,
    main_Isosurface_3_in_4,
    main_Isosurface_3_in_5,
    main_Isosurface_3_in_6
    ) [instance: 3, cache: 1];
    // 
    // node Receiver[100]: x = 311, y = 190, inputs = 1, label = colormap
    // page group: isosurface
    //
main_Receiver_100_out_1[cache: 0] = colormap;
    // 
    // node Color[34]: x = 211, y = 297, inputs = 5, label = Color
    // input[2]: defaulting = 1, visible = 1, type = 32, value = "green"
    // input[3]: defaulting = 1, visible = 1, type = 5, value = 0.5
    // page group: isosurface
    //
main_Color_34_out_1 = 
    Color(
    main_Isosurface_3_out_1,
    main_Receiver_100_out_1,
    main_Color_34_in_3,
    main_Color_34_in_4,
    main_Color_34_in_5
    ) [instance: 34, cache: 1];
    // 
    // node Transmitter[19]: x = 184, y = 400, inputs = 1, label = isosurfaces
    // page group: isosurface
    //
isosurfaces = main_Color_34_out_1;
    // 
    // node Receiver[91]: x = 90, y = 30, inputs = 1, label = isosurfaces
    // page group: image
    //
main_Receiver_91_out_1[cache: 0] = isosurfaces;
    // 
    // node Transmitter[21]: x = 128, y = 392, inputs = 1, label = glyph
    // page group: glyph
    //
glyph = main_AutoGlyph_9_out_1;
    // 
    // node Receiver[93]: x = 190, y = 94, inputs = 1, label = glyph
    // page group: image
    //
main_Receiver_93_out_1[cache: 0] = glyph;
    // 
    // node ShowConnections[2]: x = 258, y = 137, inputs = 1, label = ShowConnections
    // page group: glyph
    //
main_ShowConnections_2_out_1 = 
    ShowConnections(
    main_Receiver_92_out_1
    ) [instance: 2, cache: 1];
    // 
    // node Color[29]: x = 312, y = 218, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "blue"
    // input[3]: defaulting = 0, visible = 1, type = 5, value = 0.5
    // page group: glyph
    //
main_Color_29_out_1 = 
    Color(
    main_ShowConnections_2_out_1,
    main_Color_29_in_2,
    main_Color_29_in_3,
    main_Color_29_in_4,
    main_Color_29_in_5
    ) [instance: 29, cache: 1];
    // 
    // node Options[1]: x = 306, y = 310, inputs = 5, label = Options
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "line width"
    // input[3]: defaulting = 0, visible = 1, type = 29, value = 1.
    // page group: glyph
    //
main_Options_1_out_1 = 
    Options(
    main_Color_29_out_1,
    main_Options_1_in_2,
    main_Options_1_in_3,
    main_Options_1_in_4,
    main_Options_1_in_5
    ) [instance: 1, cache: 1];
    // 
    // node Transmitter[22]: x = 325, y = 438, inputs = 1, label = connections
    // page group: glyph
    //
connections = main_Options_1_out_1;
    // 
    // node Receiver[94]: x = 238, y = 26, inputs = 1, label = connections
    // page group: image
    //
main_Receiver_94_out_1[cache: 0] = connections;
    // 
    // node Scalar[5]: x = 64, y = 46, inputs = 11, label = Scalar
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "Scalar_5"
    // input[3]: defaulting = 0, visible = 0, type = 5, value = 0.55 
    // input[5]: defaulting = 1, visible = 0, type = 5, value = 0.0
    // input[6]: defaulting = 1, visible = 0, type = 5, value = 1.0
    // input[7]: defaulting = 1, visible = 0, type = 5, value = 1.0
    // input[9]: defaulting = 1, visible = 0, type = 1, value = 2
    // output[1]: visible = 1, type = 5, value = 0.55 
    // page group: boundary
    //
    // 
    // node ShowSphere[1]: x = 19, y = 146, inputs = 2, label = ShowSphere
    // input[1]: defaulting = 1, visible = 1, type = 16777224, value = NULL
    // input[2]: defaulting = 1, visible = 1, type = 16777245, value = {0.5}
    // page group: boundary
    //
main_ShowSphere_1_out_1 = 
    ShowSphere(
    main_ShowSphere_1_in_1,
    main_Scalar_5_out_1
    ) [instance: 1, cache: 1];
    // 
    // node Color[25]: x = 54, y = 242, inputs = 5, label = Color
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "orange"
    // input[3]: defaulting = 0, visible = 1, type = 5, value = 1.0
    // page group: boundary
    //
main_Color_25_out_1 = 
    Color(
    main_ShowSphere_1_out_1,
    main_Color_25_in_2,
    main_Color_25_in_3,
    main_Color_25_in_4,
    main_Color_25_in_5
    ) [instance: 25, cache: 1];
    // 
    // node Transmitter[15]: x = 73, y = 346, inputs = 1, label = core
    // page group: boundary
    //
core = main_Color_25_out_1;
    // 
    // node Receiver[85]: x = 425, y = 29, inputs = 1, label = core
    // page group: image
    //
main_Receiver_85_out_1[cache: 0] = core;
    // 
    // node Collect[2]: x = 126, y = 292, inputs = 11, label = Collect
    // page group: image
    //
main_Collect_2_out_1 = 
    Collect(
    main_Receiver_77_out_1,
    main_Receiver_81_out_1,
    main_Receiver_91_out_1,
    main_Receiver_93_out_1,
    main_Receiver_94_out_1,
    main_Collect_2_in_6,
    main_Collect_2_in_7,
    main_Collect_2_in_8,
    main_Collect_2_in_9,
    main_Collect_2_in_10,
    main_Receiver_85_out_1
    ) [instance: 2, cache: 1];
    // 
    // node Image[3]: x = 246, y = 450, inputs = 49, label = Image
    // input[1]: defaulting = 0, visible = 0, type = 67108863, value = "Image_3"
    // input[4]: defaulting = 0, visible = 0, type = 1, value = 1
    // input[5]: defaulting = 0, visible = 0, type = 8, value = [0.748306 0.193767 -0.0777607]
    // input[6]: defaulting = 0, visible = 0, type = 8, value = [1.36948 -1.83101 0.112188]
    // input[7]: defaulting = 0, visible = 0, type = 5, value = 1.13956
    // input[8]: defaulting = 0, visible = 0, type = 1, value = 716
    // input[9]: defaulting = 0, visible = 0, type = 5, value = 0.63757
    // input[10]: defaulting = 0, visible = 0, type = 8, value = [0.953206 0.282276 -0.108249]
    // input[11]: defaulting = 1, visible = 0, type = 5, value = 30.0004
    // input[12]: defaulting = 0, visible = 0, type = 1, value = 0
    // input[14]: defaulting = 0, visible = 0, type = 1, value = 1
    // input[15]: defaulting = 0, visible = 0, type = 32, value = "none"
    // input[16]: defaulting = 0, visible = 0, type = 32, value = "none"
    // input[17]: defaulting = 0, visible = 0, type = 1, value = 1
    // input[18]: defaulting = 0, visible = 0, type = 1, value = 1
    // input[19]: defaulting = 0, visible = 0, type = 3, value = 1
    // input[20]: visible = 1
    // input[21]: visible = 1
    // input[22]: defaulting = 0, visible = 0, type = 32, value = "white"
    // input[25]: defaulting = 0, visible = 0, type = 32, value = NULL
    // input[26]: defaulting = 0, visible = 0, type = 32, value = "eps color gamma=1 dpi=72 orient=landscape"
    // input[27]: defaulting = 1, visible = 0, type = 1, value = NULL
    // input[29]: defaulting = 1, visible = 0, type = 3, value = 0
    // input[41]: defaulting = 0, visible = 0, type = 32, value = "rotate"
    // input[42]: defaulting = 0, visible = 0, type = 32, value = "Gridded_3D_2ormorevar_notseries"
    // page group: image
    // title: value = Gridded_3D_2ormorevar_notseries
    // depth: value = 24
    // window: position = (0.0000,0.4141), size = 0.5703x0.4863
    // internal caching: 1
    //
main_Image_3_out_1,
main_Image_3_out_2,
main_Image_3_out_3 = 
    Image(
    main_Image_3_in_1,
    main_Collect_2_out_1,
    main_Image_3_in_3,
    main_Image_3_in_4,
    main_Image_3_in_5,
    main_Image_3_in_6,
    main_Image_3_in_7,
    main_Image_3_in_8,
    main_Image_3_in_9,
    main_Image_3_in_10,
    main_Image_3_in_11,
    main_Image_3_in_12,
    main_Image_3_in_13,
    main_Image_3_in_14,
    main_Image_3_in_15,
    main_Image_3_in_16,
    main_Image_3_in_17,
    main_Image_3_in_18,
    main_Image_3_in_19,
    main_Image_3_in_20,
    main_Image_3_in_21,
    main_Image_3_in_22,
    main_Image_3_in_23,
    main_Image_3_in_24,
    main_Image_3_in_25,
    main_Image_3_in_26,
    main_Image_3_in_27,
    main_Image_3_in_28,
    main_Image_3_in_29,
    main_Image_3_in_30,
    main_Image_3_in_31,
    main_Image_3_in_32,
    main_Image_3_in_33,
    main_Image_3_in_34,
    main_Image_3_in_35,
    main_Image_3_in_36,
    main_Image_3_in_37,
    main_Image_3_in_38,
    main_Image_3_in_39,
    main_Image_3_in_40,
    main_Image_3_in_41,
    main_Image_3_in_42,
    main_Image_3_in_43,
    main_Image_3_in_44,
    main_Image_3_in_45,
    main_Image_3_in_46,
    main_Image_3_in_47,
    main_Image_3_in_48,
    main_Image_3_in_49
    ) [instance: 3, cache: 1];
    // 
    // node Transmitter[23]: x = 261, y = 372, inputs = 1, label = viscosity
    // page group: import
    //
viscosity = main_CitcomSImport_2_out_3;
// network: end of macro body
CacheScene(main_Image_3_in_1, main_Image_3_out_1, main_Image_3_out_2);
}
main_AutoColor_3_in_1 = NULL;
main_AutoColor_3_in_2 = NULL;
main_AutoColor_3_in_3 = NULL;
main_AutoColor_3_in_4 = NULL;
main_AutoColor_3_in_5 = NULL;
main_AutoColor_3_in_6 = NULL;
main_AutoColor_3_in_7 = NULL;
main_AutoColor_3_in_8 = NULL;
main_AutoColor_3_in_9 = NULL;
main_AutoColor_3_in_10 = NULL;
main_FileSelector_1_out_1 = "samples/regtest.cap00.100.general";
main_Integer_8_in_1 = "Integer_8";
main_Integer_8_in_2 = NULL;
main_Integer_8_in_3 = 2 ;
main_Integer_8_in_4 = NULL;
main_Integer_8_in_5 = NULL;
main_Integer_8_in_6 = NULL;
main_Integer_8_in_7 = NULL;
main_Integer_8_in_8 = NULL;
main_Integer_8_in_9 = NULL;
main_Integer_8_in_10 = NULL;
main_Integer_8_in_11 = NULL;
main_Integer_8_out_1 = 2 ;
main_CitcomSImport_2_out_1 = NULL;
main_CitcomSImport_2_out_2 = NULL;
main_CitcomSImport_2_out_3 = NULL;
main_Transmitter_20_out_1 = NULL;
main_Receiver_92_out_1 = NULL;
main_AutoGlyph_9_in_2 = NULL;
main_AutoGlyph_9_in_3 = NULL;
main_AutoGlyph_9_in_4 = NULL;
main_AutoGlyph_9_in_5 = NULL;
main_AutoGlyph_9_in_6 = NULL;
main_AutoGlyph_9_in_7 = NULL;
main_AutoGlyph_9_out_1 = NULL;
main_Transmitter_16_out_1 = NULL;
main_Receiver_86_out_1 = NULL;
main_ShowBoundary_2_in_2 = NULL;
main_ShowBoundary_2_out_1 = NULL;
main_Color_22_in_2 = "black";
main_Color_22_in_3 = 0.1;
main_Color_22_in_4 = NULL;
main_Color_22_in_5 = NULL;
main_Color_22_out_1 = NULL;
main_Transmitter_10_out_1 = NULL;
main_Receiver_77_out_1 = NULL;
main_Receiver_96_out_1 = NULL;
main_Integer_9_in_1 = "Integer_9";
main_Integer_9_in_2 = NULL;
main_Integer_9_in_3 = 1 ;
main_Integer_9_in_4 = NULL;
main_Integer_9_in_5 = NULL;
main_Integer_9_in_6 = NULL;
main_Integer_9_in_7 = NULL;
main_Integer_9_in_8 = NULL;
main_Integer_9_in_9 = NULL;
main_Integer_9_in_10 = NULL;
main_Integer_9_in_11 = NULL;
main_Integer_9_out_1 = 1 ;
main_Integer_1_in_1 = "Integer_1";
main_Integer_1_in_2 = NULL;
main_Integer_1_in_3 = 4 ;
main_Integer_1_in_4 = NULL;
main_Integer_1_in_5 = NULL;
main_Integer_1_in_6 = NULL;
main_Integer_1_in_7 = NULL;
main_Integer_1_in_8 = NULL;
main_Integer_1_in_9 = NULL;
main_Integer_1_in_10 = NULL;
main_Integer_1_in_11 = NULL;
main_Integer_1_out_1 = 4 ;
main_Slab_1_in_4 = 0;
main_Slab_1_out_1 = NULL;
main_Receiver_98_out_1 = NULL;
main_Colormap_5_in_1 = { [0.0 0.666667] [1.0 0.0] };
main_Colormap_5_in_2 = { [0.0 1.0] [1.0 1.0] };
main_Colormap_5_in_3 = { [0.0 1.0] [1.0 1.0] };
main_Colormap_5_in_4 = { [0.0 1.0] [1.0 1.0] };
main_Colormap_5_in_5 = "Colormap_5";
main_Colormap_5_in_7 = NULL;
main_Colormap_5_in_8 = NULL;
main_Colormap_5_in_9 = NULL;
main_Colormap_5_in_10 = NULL;
main_Colormap_5_in_11 = NULL;
main_Colormap_5_in_12 = { 0.0 1.0 };
main_Colormap_5_in_13 = NULL;
main_Colormap_5_in_14 = NULL;
main_Colormap_5_in_15 = NULL;
main_Colormap_5_in_16 = NULL;
main_Colormap_5_in_17 = 0.0;
main_Colormap_5_in_18 = 1.0;
main_Colormap_5_in_19 = NULL;
main_Colormap_5_out_1 = NULL;
main_Transmitter_25_out_1 = NULL;
main_Receiver_99_out_1 = NULL;
main_Color_24_in_3 = NULL;
main_Color_24_in_4 = NULL;
main_Color_24_in_5 = NULL;
main_Color_24_out_1 = NULL;
main_Transmitter_13_out_1 = NULL;
main_Receiver_81_out_1 = NULL;
main_Receiver_90_out_1 = NULL;
main_ScalarList_1_in_1 = "ScalarList_1";
main_ScalarList_1_in_2 = NULL;
main_ScalarList_1_in_3 = { 0.8 0.4 };
main_ScalarList_1_in_4 = NULL;
main_ScalarList_1_in_5 = NULL;
main_ScalarList_1_in_6 = NULL;
main_ScalarList_1_in_7 = NULL;
main_ScalarList_1_in_8 = NULL;
main_ScalarList_1_in_9 = NULL;
main_ScalarList_1_in_10 = NULL;
main_ScalarList_1_in_11 = NULL;
main_ScalarList_1_out_1 = { 0.8 0.4 };
main_Isosurface_3_in_3 = NULL;
main_Isosurface_3_in_4 = NULL;
main_Isosurface_3_in_5 = NULL;
main_Isosurface_3_in_6 = NULL;
main_Isosurface_3_out_1 = NULL;
main_Receiver_100_out_1 = NULL;
main_Color_34_in_3 = NULL;
main_Color_34_in_4 = NULL;
main_Color_34_in_5 = NULL;
main_Color_34_out_1 = NULL;
main_Transmitter_19_out_1 = NULL;
main_Receiver_91_out_1 = NULL;
main_Transmitter_21_out_1 = NULL;
main_Receiver_93_out_1 = NULL;
main_ShowConnections_2_out_1 = NULL;
main_Color_29_in_2 = "blue";
main_Color_29_in_3 = 0.5;
main_Color_29_in_4 = NULL;
main_Color_29_in_5 = NULL;
main_Color_29_out_1 = NULL;
main_Options_1_in_2 = "line width";
main_Options_1_in_3 = 1.;
main_Options_1_in_4 = NULL;
main_Options_1_in_5 = NULL;
main_Options_1_out_1 = NULL;
main_Transmitter_22_out_1 = NULL;
main_Receiver_94_out_1 = NULL;
main_Scalar_5_in_1 = "Scalar_5";
main_Scalar_5_in_2 = NULL;
main_Scalar_5_in_3 = 0.55 ;
main_Scalar_5_in_4 = NULL;
main_Scalar_5_in_5 = NULL;
main_Scalar_5_in_6 = NULL;
main_Scalar_5_in_7 = NULL;
main_Scalar_5_in_8 = NULL;
main_Scalar_5_in_9 = NULL;
main_Scalar_5_in_10 = NULL;
main_Scalar_5_in_11 = NULL;
main_Scalar_5_out_1 = 0.55 ;
main_ShowSphere_1_in_1 = NULL;
main_ShowSphere_1_out_1 = NULL;
main_Color_25_in_2 = "orange";
main_Color_25_in_3 = 1.0;
main_Color_25_in_4 = NULL;
main_Color_25_in_5 = NULL;
main_Color_25_out_1 = NULL;
main_Transmitter_15_out_1 = NULL;
main_Receiver_85_out_1 = NULL;
main_Collect_2_in_6 = NULL;
main_Collect_2_in_7 = NULL;
main_Collect_2_in_8 = NULL;
main_Collect_2_in_9 = NULL;
main_Collect_2_in_10 = NULL;
main_Collect_2_out_1 = NULL;
macro Image(
        id,
        object,
        where,
        useVector,
        to,
        from,
        width,
        resolution,
        aspect,
        up,
        viewAngle,
        perspective,
        options,
        buttonState = 1,
        buttonUpApprox = "none",
        buttonDownApprox = "none",
        buttonUpDensity = 1,
        buttonDownDensity = 1,
        renderMode = 0,
        defaultCamera,
        reset,
        backgroundColor,
        throttle,
        RECenable = 0,
        RECfile,
        RECformat,
        RECresolution,
        RECaspect,
        AAenable = 0,
        AAlabels,
        AAticks,
        AAcorners,
        AAframe,
        AAadjust,
        AAcursor,
        AAgrid,
        AAcolors,
        AAannotation,
        AAlabelscale,
        AAfont,
        interactionMode,
        title,
        AAxTickLocs,
        AAyTickLocs,
        AAzTickLocs,
        AAxTickLabels,
        AAyTickLabels,
        AAzTickLabels,
        webOptions) -> (
        object,
        camera,
        where)
{
    ImageMessage(
        id,
        backgroundColor,
        throttle,
        RECenable,
        RECfile,
        RECformat,
        RECresolution,
        RECaspect,
        AAenable,
        AAlabels,
        AAticks,
        AAcorners,
        AAframe,
        AAadjust,
        AAcursor,
        AAgrid,
        AAcolors,
        AAannotation,
        AAlabelscale,
        AAfont,
        AAxTickLocs,
        AAyTickLocs,
        AAzTickLocs,
        AAxTickLabels,
        AAyTickLabels,
        AAzTickLabels,
        interactionMode,
        title,
        renderMode,
        buttonUpApprox,
        buttonDownApprox,
        buttonUpDensity,
        buttonDownDensity) [instance: 1, cache: 1];
    autoCamera =
        AutoCamera(
            object,
            "front",
            object,
            resolution,
            aspect,
            [0,1,0],
            perspective,
            viewAngle,
            backgroundColor) [instance: 1, cache: 1];
    realCamera =
        Camera(
            to,
            from,
            width,
            resolution,
            aspect,
            up,
            perspective,
            viewAngle,
            backgroundColor) [instance: 1, cache: 1];
    coloredDefaultCamera = 
	 UpdateCamera(defaultCamera,
            background=backgroundColor) [instance: 1, cache: 1];
    nullDefaultCamera =
        Inquire(defaultCamera,
            "is null + 1") [instance: 1, cache: 1];
    resetCamera =
        Switch(
            nullDefaultCamera,
            coloredDefaultCamera,
            autoCamera) [instance: 1, cache: 1];
    resetNull = 
        Inquire(
            reset,
            "is null + 1") [instance: 2, cache: 1];
    reset =
        Switch(
            resetNull,
            reset,
            0) [instance: 2, cache: 1];
    whichCamera =
        Compute(
            "($0 != 0 || $1 == 0) ? 1 : 2",
            reset,
            useVector) [instance: 1, cache: 1];
    camera = Switch(
            whichCamera,
            resetCamera,
            realCamera) [instance: 3, cache: 1];
    AAobject =
        AutoAxes(
            object,
            camera,
            AAlabels,
            AAticks,
            AAcorners,
            AAframe,
            AAadjust,
            AAcursor,
            AAgrid,
            AAcolors,
            AAannotation,
            AAlabelscale,
            AAfont,
            AAxTickLocs,
            AAyTickLocs,
            AAzTickLocs,
            AAxTickLabels,
            AAyTickLabels,
            AAzTickLabels) [instance: 1, cache: 1];
    switchAAenable = Compute("$0+1",
	     AAenable) [instance: 2, cache: 1];
    object = Switch(
	     switchAAenable,
	     object,
	     AAobject) [instance:4, cache: 1];
    SWapproximation_options =
        Switch(
            buttonState,
            buttonUpApprox,
            buttonDownApprox) [instance: 5, cache: 1];
    SWdensity_options =
        Switch(
            buttonState,
            buttonUpDensity,
            buttonDownDensity) [instance: 6, cache: 1];
    HWapproximation_options =
        Format(
            "%s,%s",
            buttonDownApprox,
            buttonUpApprox) [instance: 1, cache: 1];
    HWdensity_options =
        Format(
            "%d,%d",
            buttonDownDensity,
            buttonUpDensity) [instance: 2, cache: 1];
    switchRenderMode = Compute(
	     "$0+1",
	     renderMode) [instance: 3, cache: 1];
    approximation_options = Switch(
	     switchRenderMode,
            SWapproximation_options,
	     HWapproximation_options) [instance: 7, cache: 1];
    density_options = Switch(
	     switchRenderMode,
            SWdensity_options,
            HWdensity_options) [instance: 8, cache: 1];
    renderModeString = Switch(
            switchRenderMode,
            "software",
            "hardware")[instance: 9, cache: 1];
    object_tag = Inquire(
            object,
            "object tag")[instance: 3, cache: 1];
    annoted_object =
        Options(
            object,
            "send boxes",
            0,
            "cache",
            1,
            "object tag",
            object_tag,
            "ddcamera",
            whichCamera,
            "rendering approximation",
            approximation_options,
            "render every",
            density_options,
            "button state",
            buttonState,
            "rendering mode",
            renderModeString) [instance: 1, cache: 1];
    RECresNull =
        Inquire(
            RECresolution,
            "is null + 1") [instance: 4, cache: 1];
    ImageResolution =
        Inquire(
            camera,
            "camera resolution") [instance: 5, cache: 1];
    RECresolution =
        Switch(
            RECresNull,
            RECresolution,
            ImageResolution) [instance: 10, cache: 1];
    RECaspectNull =
        Inquire(
            RECaspect,
            "is null + 1") [instance: 6, cache: 1];
    ImageAspect =
        Inquire(
            camera,
            "camera aspect") [instance: 7, cache: 1];
    RECaspect =
        Switch(
            RECaspectNull,
            RECaspect,
            ImageAspect) [instance: 11, cache: 1];
    switchRECenable = Compute(
          "$0 == 0 ? 1 : (($2 == $3) && ($4 == $5)) ? ($1 == 1 ? 2 : 3) : 4",
            RECenable,
            switchRenderMode,
            RECresolution,
            ImageResolution,
            RECaspect,
	     ImageAspect) [instance: 4, cache: 1];
    NoRECobject, RECNoRerenderObject, RECNoRerHW, RECRerenderObject = Route(switchRECenable, annoted_object);
    Display(
        NoRECobject,
        camera,
        where,
        throttle) [instance: 1, cache: 1];
    image =
        Render(
            RECNoRerenderObject,
            camera) [instance: 1, cache: 1];
    Display(
        image,
        NULL,
        where,
        throttle) [instance: 2, cache: 1];
    WriteImage(
        image,
        RECfile,
        RECformat) [instance: 1, cache: 1];
    rec_where = Display(
        RECNoRerHW,
        camera,
        where,
        throttle) [instance: 1, cache: 0];
    rec_image = ReadImageWindow(
        rec_where) [instance: 1, cache: 1];
    WriteImage(
        rec_image,
        RECfile,
        RECformat) [instance: 1, cache: 1];
    RECupdateCamera =
	UpdateCamera(
	    camera,
	    resolution=RECresolution,
	    aspect=RECaspect) [instance: 2, cache: 1];
    Display(
        RECRerenderObject,
        camera,
        where,
        throttle) [instance: 1, cache: 1];
    RECRerenderObject =
	ScaleScreen(
	    RECRerenderObject,
	    NULL,
	    RECresolution,
	    camera) [instance: 1, cache: 1];
    image =
        Render(
            RECRerenderObject,
            RECupdateCamera) [instance: 2, cache: 1];
    WriteImage(
        image,
        RECfile,
        RECformat) [instance: 2, cache: 1];
}
main_Image_3_in_1 = "Image_3";
main_Image_3_in_3 = "X24,,Gridded_3D_2ormorevar_notseries";
main_Image_3_in_4 = 1;
main_Image_3_in_5 = [0.748306 0.193767 -0.0777607];
main_Image_3_in_6 = [1.36948 -1.83101 0.112188];
main_Image_3_in_7 = 1.13956;
main_Image_3_in_8 = 716;
main_Image_3_in_9 = 0.63757;
main_Image_3_in_10 = [0.953206 0.282276 -0.108249];
main_Image_3_in_11 = NULL;
main_Image_3_in_12 = 0;
main_Image_3_in_13 = NULL;
main_Image_3_in_14 = 1;
main_Image_3_in_15 = "none";
main_Image_3_in_16 = "none";
main_Image_3_in_17 = 1;
main_Image_3_in_18 = 1;
main_Image_3_in_19 = 1;
main_Image_3_in_20 = NULL;
main_Image_3_in_21 = NULL;
main_Image_3_in_22 = "white";
main_Image_3_in_23 = NULL;
main_Image_3_in_25 = NULL;
main_Image_3_in_26 = "eps color gamma=1 dpi=72 orient=landscape";
main_Image_3_in_27 = NULL;
main_Image_3_in_28 = NULL;
main_Image_3_in_29 = NULL;
main_Image_3_in_30 = NULL;
main_Image_3_in_31 = NULL;
main_Image_3_in_32 = NULL;
main_Image_3_in_33 = NULL;
main_Image_3_in_34 = NULL;
main_Image_3_in_35 = NULL;
main_Image_3_in_36 = NULL;
main_Image_3_in_37 = NULL;
main_Image_3_in_38 = NULL;
main_Image_3_in_39 = NULL;
main_Image_3_in_40 = NULL;
main_Image_3_in_41 = "rotate";
main_Image_3_in_42 = "Gridded_3D_2ormorevar_notseries";
main_Image_3_in_43 = NULL;
main_Image_3_in_44 = NULL;
main_Image_3_in_45 = NULL;
main_Image_3_in_46 = NULL;
main_Image_3_in_47 = NULL;
main_Image_3_in_48 = NULL;
main_Image_3_in_49 = NULL;
Executive("product version 4 3 2");
$sync
main();
back to top