Mixism 2.0: Using helical coil: hangs when creating geometry and mesh


A simple configuration with a tank (curved bottom and top), a single, central, vertical top shaft with a simple PBT on it, and a helical coil around it (with plenty of space between the impeller blade tips and the coil).

When trying to create the grid, MixSim hangs.
Further investigation shows: It's Gambit's "intersecting(...)" function call which hangs indefinitely, quickly allocating all memory that is available on the machine, but without coming to any progress.
The approach to resolve this is to eliminate all intersection checks (which are done just in order to detect and report user errors) in connection with helical coils.
(This MAY even allow for helical coils to intersect with baffles, but don't take this for sure.)

To apply this "patch", find the file .../Fluent.Inc/mixsim2.0/Mixsim-Object-Library/Geom-Helical-Coil.mxo and edit it:
At the end of the file, you should find a line "[End Grid Command List]". Before this line, insert the following block (without the "snip" and "snap" lines):
------------ snip -------------
138 // Intersection checks with helical coils fail often --
138 // "eliminate" them by having Gambit use a dummy volume:
138 volume modify "{GeometryName}" label "{GeometryName}hideaway"
138 volume create "{GeometryName}" brick width 0.2
138 // Move it to a unique location:
138 volume move "{GeometryName}" offset 0 0 (0 - LASTID(t_vo))
142 // Now that all intersection checks have been done,
142 // remove the dummy volume and assign the right
142 // name to the original volume again:
142 volume delete "{GeometryName}" lowertopology
142 volume modify "{GeometryName}hideaway" label "{GeometryName}"
------------ snap ------------
The second "Resolution" entry of the this Solution (no. 816) gives the complete contents of the patched MixSim object file ".../Fluent.Inc/mixsim2.0/Mixsim-Object-Library/Geom-Helical-Coil.mxo".
NOTE:
If you don't have write permission in the installation area, you can have a local copy of the patched file (file name may still be the same). Tell MixSim to use it by setting the "User Object Library Directory" to the directory where the patched file resides. Do this in your MixSim session *before* your load or create a new model. If you save the "defaults" (using File---Save-Defaults), MixSim will remember this settings.
(Saved defaults can contain default parameter values for individual objects when newly added to any object. In order to see for which object types default values are currently in memory, see Edit---Remove-Defaults...)# This is a comment.

MixSim Object File - Version 1.0
Name: "Helical Coil"
Class: "Coil"
SubClass: "HelicalCoil"
AnalysisType: "MRF|Sliding-Mesh"

[Subclass List]
[End Subclass List]

[Dependent Class List]
[End Dependent Class List]

[Parameter List]
[Parameter]
Type: Real
Name: Diameter
Label: Diameter
Length: 10
Value: .4
Decimal Places: 4
Units Quantity: length
Units: m
Hidden Parameter?: No
[End Parameter]

[Parameter]
Type: Real
Name: TopElevation
Label: Top Elevation
Length: 10
Value: .8
Decimal Places: 4
Units Quantity: length
Units: m
Hidden Parameter?: No
[End Parameter]

[Parameter]
Type: Real
Name: BottomElevation
Label: Bottom Elevation
Length: 10
Value: .3
Decimal Places: 4
Units Quantity: length
Units: m
Hidden Parameter?: No
[End Parameter]

[Parameter]
Type: Real
Name: TubeDiameter
Label: Tube Diameter
Length: 10
Value: .02
Decimal Places: 4
Units Quantity: length
Units: m
Hidden Parameter?: No
[End Parameter]

[Parameter]
Type: Real
Name: Pitch
Label: Pitch
Length: 10
Value: 2.0
Decimal Places: 4
Units Quantity: length-inverse
Units: 1/m
Hidden Parameter?: No
[End Parameter]

[Parameter]
Type: Text
Name: GeometryName
Label: N/A
Length: 30
Value: helical_coil
Hidden Parameter?: Yes
[End Parameter]

[Parameter]
Type: Text
Name: BaseGeometryName
Label: N/A
Length: 30
Value: helical_coil
Hidden Parameter?: Yes
[End Parameter]

[Parameter]
Type: Real
Name: InitialMeshSize
Label: Initial Mesh Size
Length: 10
Value: [TubeDiameter]/3
Is This An Equation: Yes
Decimal Places: 4
Units Quantity: length
Units: m
Hidden Parameter?: Yes
[End Parameter]
[End Parameter List]

[Display Graphics List]
[End Display Graphics List]

[Grid Command List]
%% (display "Generating helical coil
%% '{GeometryName}' from Grid Command List.")
// Generating helical coil "{GeometryName}" from Grid Command List:
$rad1 = ( [TubeDiameter] / 2.0 )
$rad2 = ( [Diameter] / 2.0 )
$ht = ( [TopElevation] - [BottomElevation] )
$pitch = ( 1.0 / [Pitch] )
$angle = (360.0 * ($ht / $pitch))
face create radius $rad1 zxplane circle
$last_id = LASTID(t_fa)
face move ("face." + ntos(LASTID(t_fa))) offset $rad2 0 0
vertex create coordinates 0 0 0
vertex create coordinates $rad2 0 0
edge create straight ("vertex." + ntos(LASTID(t_ve))) ("vertex." + ntos((LASTID(t_ve))-1))
face create rotate ("edge." + ntos(LASTID(t_ed))) vector 0 0 $ht origin 0 0 0 twist $angle
$last_fa = LASTID(t_fa)
// Rotate Face on appropriate Edge
volume create rotate ("face." + ntos($last_id)) onedge (LOC2ENT(t_ed, ($rad2 * cos($angle/2.0)), ($rad2 * sin($angle/2.0)), ($ht/2.0))) draft 0 extended
// Delete face
face delete ("face." + ntos($last_fa)) lowertopology
volume move ("volume." + ntos(LASTID(t_vo))) offset 0 0 [BottomElevation]
volume modify ("volume." + ntos(LASTID(t_vo))) label "{GeometryName}"
138 // Intersection checks with helical coils fail often --
138 // "eliminate" them by having Gambit use a dummy volume:
138 volume modify "{GeometryName}" label "{GeometryName}hideaway"
138 volume create "{GeometryName}" brick width 0.2
138 // Move it to a unique location:
138 volume move "{GeometryName}" offset 0 0 (0 - LASTID(t_vo))
142 // Now that all intersection checks have been done,
142 // remove the dummy volume and assign the right
142 // name to the original volume again:
142 volume delete "{GeometryName}" lowertopology
142 volume modify "{GeometryName}hideaway" label "{GeometryName}"
[End Grid Command List]





Show Form
No comments yet. Be the first to add a comment!