Skip to content

Commit

Permalink
Merge pull request #632 from rpeacoc/master
Browse files Browse the repository at this point in the history
Fix array limits for large simulations.
  • Loading branch information
Richard Peacock authored Nov 10, 2016
2 parents f22c2f9 + 4d197e7 commit 5b88b97
Show file tree
Hide file tree
Showing 4 changed files with 148 additions and 130 deletions.
29 changes: 23 additions & 6 deletions Manuals/Users_Guide/Appendix_CFAST_Keywords.tex
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ \section{EVENT}
\item[TYPE] Type indicates the vent type associated with this EVENT action. ``H'' indicates a horizontal flow event that changes the vent opening, ``V'' a vertical flow event, ``M'' a mechanical flow event, and ``F'' for filtering of mechanical ventilation flow.
\item[FIRST] compartment number of lower numbered (for wall vents), top (for ceiling/floor vents) or from compartment (for mechanical vents).
\item[SECOND] compartment number of higher numbered (for wall vents), bottom (for ceiling/floor vents) or to compartment (for mechanical vents).
\item[VentID] vent number associated with the vent consistent with appropriate vent command.
\item[ID] vent number associated with the vent consistent with appropriate vent command.
\item[TIME] beginning time of vent opening or filter fraction change.
\item[FRACTION] final vent opening fraction or filter fraction.
\item[DECAY] time over which opening or filter transitions from its initial fraction to its final fraction.
Expand Down Expand Up @@ -326,13 +326,30 @@ \section{HHEAT}

\section{HVENT}

\begin{lstlisting}
HVENT, FIRST_COMPARTMENT, SECOND_COMPARTMENT, VENT_NUMBER, WIDTH, SOFFIT, SILL, FIRST_COMPARTMENT_OFFSET, SECOND_COMPARTMENT_OFFSET, FACE, OPENING_TRIGGER_TYPE, OPENING_TRIGGER_CRITERION, ASSOCIATED_OPENING_TRIGGER_TARGET, INITIAL_TIME, INITIAL_FRACTION, FINAL_TIME, FINAL_FRACTION
\end{lstlisting}
The HVENT keyword specifies a vent which allows horizontal flow of gases through wall vents such as doors and windows.

Vent which allows horizontal flow of gases through vents such as doors and windows. Compartment offsets are triplets from the compartment origin. FACE is an integer from 1 to 4 counterclockwise from the origin defining which wall face to place the vent on when visualizing with Smokeview. It doesn't affect the dynamics of the calculation, just the way it looks. The size of the opening can be modified by EVENT. This changes the Opening\_Fraction from the initial value (set above) to some other value. Typical use is to start with the door open (Initial\_Opening\_Fraction~=~1) and use EVENT to close the door (Final\_Fraction~=~0).
\begin{adjustwidth}{1cm}{0cm}
\begin{description}
\item[FIRST]
\item[SECOND]
\item[ID]
\item[WIDTH]
\item[SOFFIT]
\item[SILL]
\item[OFFSET1]
\item[OFFSET2]
\item[FACE]
\item[TYPE]
\item[CRITERION]
\item[TARGET]
\item[INITIALTIME]
\item[INITIALFRACTION]
\item[FINALTIME]
\item[FINALFRACTION]
\end{description}
\end{adjustwidth}

Example:
\noindent Example:

\begin{lstlisting}
HVENT,1,2,1,1,2,0,2.5,0,1,TIME,,,0,1,0,1
Expand Down
2 changes: 1 addition & 1 deletion Source/CFAST/outputspreadsheet.f90
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@ subroutine output_spreadsheet_smokeview (time)

! This routine writes to the {project}_zone.csv file, the smokeview information

integer, parameter :: maxhead = 1+7*mxrooms+5+7*mxfires
integer, parameter :: maxhead = 1+7*mxrooms+5+7*mxfires+mxhvents*(4+10*mxfslab)+10*mxvvents+12*mxmvents
real(eb), intent(in) :: time

real(eb) :: outarray(maxhead), fheight, fraction, height, width, avent, slabs, vflow
Expand Down
6 changes: 3 additions & 3 deletions Source/Cedit/CEdit.vb
Original file line number Diff line number Diff line change
Expand Up @@ -1460,7 +1460,7 @@ Public Class CeditMain
Me.HVentSummary.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!)
Me.HVentSummary.Location = New System.Drawing.Point(157, 30)
Me.HVentSummary.Name = "HVentSummary"
Me.HVentSummary.Rows.Count = 401
Me.HVentSummary.Rows.Count = 2501
Me.HVentSummary.Rows.DefaultSize = 19
Me.HVentSummary.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.HVentSummary.SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Row
Expand Down Expand Up @@ -1803,7 +1803,7 @@ Public Class CeditMain
Me.VVentSummary.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!)
Me.VVentSummary.Location = New System.Drawing.Point(278, 25)
Me.VVentSummary.Name = "VVentSummary"
Me.VVentSummary.Rows.Count = 401
Me.VVentSummary.Rows.Count = 2501
Me.VVentSummary.Rows.DefaultSize = 19
Me.VVentSummary.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.VVentSummary.Size = New System.Drawing.Size(421, 154)
Expand Down Expand Up @@ -2634,7 +2634,7 @@ Public Class CeditMain
Me.MVentSummary.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!)
Me.MVentSummary.Location = New System.Drawing.Point(53, 25)
Me.MVentSummary.Name = "MVentSummary"
Me.MVentSummary.Rows.Count = 401
Me.MVentSummary.Rows.Count = 2501
Me.MVentSummary.Rows.DefaultSize = 19
Me.MVentSummary.Size = New System.Drawing.Size(862, 120)
Me.MVentSummary.StyleInfo = resources.GetString("MVentSummary.StyleInfo")
Expand Down
241 changes: 121 additions & 120 deletions Source/Cedit/RunModel.vb
Original file line number Diff line number Diff line change
Expand Up @@ -54,172 +54,173 @@ Public Class RunModel
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents RunUpdate As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(RunModel))
RunSummary = New C1.Win.C1FlexGrid.C1FlexGrid()
RunOK = New System.Windows.Forms.Button()
Label1 = New System.Windows.Forms.Label()
Label2 = New System.Windows.Forms.Label()
RunTime = New System.Windows.Forms.TextBox()
RunDT = New System.Windows.Forms.TextBox()
RunTimer = New System.Windows.Forms.Timer(components)
RunStop = New System.Windows.Forms.Button()
RunProgress = New System.Windows.Forms.ProgressBar()
Label3 = New System.Windows.Forms.Label()
RunUpdate = New System.Windows.Forms.Button()
RunOptions = New System.Windows.Forms.Label()
RunJac = New System.Windows.Forms.Button()
RunErrors = New System.Windows.Forms.TextBox()
CType(RunSummary, System.ComponentModel.ISupportInitialize).BeginInit()
SuspendLayout()
Me.RunSummary = New C1.Win.C1FlexGrid.C1FlexGrid()
Me.RunOK = New System.Windows.Forms.Button()
Me.Label1 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.RunTime = New System.Windows.Forms.TextBox()
Me.RunDT = New System.Windows.Forms.TextBox()
Me.RunTimer = New System.Windows.Forms.Timer(Me.components)
Me.RunStop = New System.Windows.Forms.Button()
Me.RunProgress = New System.Windows.Forms.ProgressBar()
Me.Label3 = New System.Windows.Forms.Label()
Me.RunUpdate = New System.Windows.Forms.Button()
Me.RunOptions = New System.Windows.Forms.Label()
Me.RunJac = New System.Windows.Forms.Button()
Me.RunErrors = New System.Windows.Forms.TextBox()
CType(Me.RunSummary, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'RunSummary
'
RunSummary.AllowSorting = C1.Win.C1FlexGrid.AllowSortingEnum.None
RunSummary.ColumnInfo = resources.GetString("RunSummary.ColumnInfo")
RunSummary.ExtendLastCol = True
RunSummary.Location = New System.Drawing.Point(82, 80)
RunSummary.Name = "RunSummary"
RunSummary.Rows.DefaultSize = 17
RunSummary.Size = New System.Drawing.Size(821, 265)
RunSummary.TabIndex = 3
RunSummary.VisualStyle = C1.Win.C1FlexGrid.VisualStyle.System
Me.RunSummary.AllowSorting = C1.Win.C1FlexGrid.AllowSortingEnum.None
Me.RunSummary.ColumnInfo = resources.GetString("RunSummary.ColumnInfo")
Me.RunSummary.ExtendLastCol = True
Me.RunSummary.Location = New System.Drawing.Point(82, 80)
Me.RunSummary.Name = "RunSummary"
Me.RunSummary.Rows.Count = 150
Me.RunSummary.Rows.DefaultSize = 17
Me.RunSummary.Size = New System.Drawing.Size(821, 265)
Me.RunSummary.TabIndex = 3
Me.RunSummary.VisualStyle = C1.Win.C1FlexGrid.VisualStyle.System
'
'RunOK
'
RunOK.Location = New System.Drawing.Point(212, 520)
RunOK.Name = "RunOK"
RunOK.Size = New System.Drawing.Size(100, 23)
RunOK.TabIndex = 4
RunOK.Text = "Close"
Me.RunOK.Location = New System.Drawing.Point(212, 520)
Me.RunOK.Name = "RunOK"
Me.RunOK.Size = New System.Drawing.Size(100, 23)
Me.RunOK.TabIndex = 4
Me.RunOK.Text = "Close"
'
'Label1
'
Label1.AutoSize = True
Label1.Location = New System.Drawing.Point(296, 34)
Label1.Name = "Label1"
Label1.Size = New System.Drawing.Size(84, 13)
Label1.TabIndex = 3
Label1.Text = "Simulation Time:"
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(296, 34)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(84, 13)
Me.Label1.TabIndex = 3
Me.Label1.Text = "Simulation Time:"
'
'Label2
'
Label2.AutoSize = True
Label2.Location = New System.Drawing.Point(32, 34)
Label2.Name = "Label2"
Label2.Size = New System.Drawing.Size(95, 13)
Label2.TabIndex = 4
Label2.Text = "Current Time Step:"
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(32, 34)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(95, 13)
Me.Label2.TabIndex = 4
Me.Label2.Text = "Current Time Step:"
'
'RunTime
'
RunTime.Location = New System.Drawing.Point(400, 32)
RunTime.Name = "RunTime"
RunTime.Size = New System.Drawing.Size(100, 20)
RunTime.TabIndex = 2
RunTime.Text = "0 s"
Me.RunTime.Location = New System.Drawing.Point(400, 32)
Me.RunTime.Name = "RunTime"
Me.RunTime.Size = New System.Drawing.Size(100, 20)
Me.RunTime.TabIndex = 2
Me.RunTime.Text = "0 s"
'
'RunDT
'
RunDT.Location = New System.Drawing.Point(144, 32)
RunDT.Name = "RunDT"
RunDT.Size = New System.Drawing.Size(100, 20)
RunDT.TabIndex = 1
RunDT.Text = "0.1 s"
Me.RunDT.Location = New System.Drawing.Point(144, 32)
Me.RunDT.Name = "RunDT"
Me.RunDT.Size = New System.Drawing.Size(100, 20)
Me.RunDT.TabIndex = 1
Me.RunDT.Text = "0.1 s"
'
'RunTimer
'
RunTimer.Interval = 250
Me.RunTimer.Interval = 250
'
'RunStop
'
RunStop.Location = New System.Drawing.Point(364, 520)
RunStop.Name = "RunStop"
RunStop.Size = New System.Drawing.Size(100, 23)
RunStop.TabIndex = 5
RunStop.Text = "Stop"
Me.RunStop.Location = New System.Drawing.Point(364, 520)
Me.RunStop.Name = "RunStop"
Me.RunStop.Size = New System.Drawing.Size(100, 23)
Me.RunStop.TabIndex = 5
Me.RunStop.Text = "Stop"
'
'RunProgress
'
RunProgress.Location = New System.Drawing.Point(616, 34)
RunProgress.Name = "RunProgress"
RunProgress.Size = New System.Drawing.Size(344, 16)
RunProgress.Step = 5
RunProgress.TabIndex = 8
Me.RunProgress.Location = New System.Drawing.Point(616, 34)
Me.RunProgress.Name = "RunProgress"
Me.RunProgress.Size = New System.Drawing.Size(344, 16)
Me.RunProgress.Step = 5
Me.RunProgress.TabIndex = 8
'
'Label3
'
Label3.AutoSize = True
Label3.Location = New System.Drawing.Point(536, 34)
Label3.Name = "Label3"
Label3.Size = New System.Drawing.Size(51, 13)
Label3.TabIndex = 9
Label3.Text = "Progress:"
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(536, 34)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(51, 13)
Me.Label3.TabIndex = 9
Me.Label3.Text = "Progress:"
'
'RunUpdate
'
RunUpdate.Location = New System.Drawing.Point(516, 520)
RunUpdate.Name = "RunUpdate"
RunUpdate.Size = New System.Drawing.Size(100, 23)
RunUpdate.TabIndex = 6
RunUpdate.Text = "Update"
Me.RunUpdate.Location = New System.Drawing.Point(516, 520)
Me.RunUpdate.Name = "RunUpdate"
Me.RunUpdate.Size = New System.Drawing.Size(100, 23)
Me.RunUpdate.TabIndex = 6
Me.RunUpdate.Text = "Update"
'
'RunOptions
'
RunOptions.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
RunOptions.AutoSize = True
RunOptions.Location = New System.Drawing.Point(12, 530)
RunOptions.Name = "RunOptions"
RunOptions.Size = New System.Drawing.Size(0, 13)
RunOptions.TabIndex = 10
Me.RunOptions.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.RunOptions.AutoSize = True
Me.RunOptions.Location = New System.Drawing.Point(12, 530)
Me.RunOptions.Name = "RunOptions"
Me.RunOptions.Size = New System.Drawing.Size(0, 13)
Me.RunOptions.TabIndex = 10
'
'RunJac
'
RunJac.Location = New System.Drawing.Point(672, 520)
RunJac.Name = "RunJac"
RunJac.Size = New System.Drawing.Size(100, 23)
RunJac.TabIndex = 11
RunJac.Text = "Jacobian Off"
RunJac.Visible = False
Me.RunJac.Location = New System.Drawing.Point(672, 520)
Me.RunJac.Name = "RunJac"
Me.RunJac.Size = New System.Drawing.Size(100, 23)
Me.RunJac.TabIndex = 11
Me.RunJac.Text = "Jacobian Off"
Me.RunJac.Visible = False
'
'RunErrors
'
RunErrors.Location = New System.Drawing.Point(82, 351)
RunErrors.Multiline = True
RunErrors.Name = "RunErrors"
RunErrors.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
RunErrors.Size = New System.Drawing.Size(821, 149)
RunErrors.TabIndex = 20
RunErrors.TabStop = False
RunErrors.Text = "No Errors"
Me.RunErrors.Location = New System.Drawing.Point(82, 351)
Me.RunErrors.Multiline = True
Me.RunErrors.Name = "RunErrors"
Me.RunErrors.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.RunErrors.Size = New System.Drawing.Size(821, 149)
Me.RunErrors.TabIndex = 20
Me.RunErrors.TabStop = False
Me.RunErrors.Text = "No Errors"
'
'RunModel
'
AcceptButton = RunOK
AutoScaleBaseSize = New System.Drawing.Size(5, 13)
ClientSize = New System.Drawing.Size(984, 562)
Controls.Add(RunErrors)
Controls.Add(RunJac)
Controls.Add(RunOptions)
Controls.Add(RunUpdate)
Controls.Add(Label3)
Controls.Add(RunProgress)
Controls.Add(RunStop)
Controls.Add(RunDT)
Controls.Add(RunTime)
Controls.Add(Label2)
Controls.Add(Label1)
Controls.Add(RunSummary)
Controls.Add(RunOK)
Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
MaximumSize = New System.Drawing.Size(1000, 800)
Name = "RunModel"
ShowInTaskbar = False
StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Text = "RunModel"
CType(RunSummary, System.ComponentModel.ISupportInitialize).EndInit()
ResumeLayout(False)
PerformLayout()
Me.AcceptButton = Me.RunOK
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(984, 562)
Me.Controls.Add(Me.RunErrors)
Me.Controls.Add(Me.RunJac)
Me.Controls.Add(Me.RunOptions)
Me.Controls.Add(Me.RunUpdate)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.RunProgress)
Me.Controls.Add(Me.RunStop)
Me.Controls.Add(Me.RunDT)
Me.Controls.Add(Me.RunTime)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.RunSummary)
Me.Controls.Add(Me.RunOK)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.MaximumSize = New System.Drawing.Size(1000, 800)
Me.Name = "RunModel"
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "RunModel"
CType(Me.RunSummary, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()

End Sub

Expand Down

0 comments on commit 5b88b97

Please sign in to comment.