Initiation of the CPT Data Calculation
Primary Table Calculations
The primary CPT calculation is initiated by changing data then saving on the following tables (or the split screen parent of these tables):
- POINT
- CPT_GENERAL
- CPT_DATA, and any one to one child tables of CPT_DATA
- CPT_DATA_ENVIRONMENTAL
- CPT_DATA_LIQUEFACTION
- CPT_DATA_LOWER_BEST_UPPER
- CPT_DATA_FOUNDATION
- CPT_CONE_INFORMATION
- CPT_FOUNDATION_POINT_PARAMETERS
- CPT_FOUNDATION_POINT_PARAMETERS_PROFILE
- CPT_FOUNDATION_PROJECT_PARAMETERS
- CPT_LIQ_POINT_PARAMETERS
- CPT_LIQ_PROJECT_PARAMETERS
- CPT_POINT_CORRELATION_PARAMETERS
- CPT_POINT_MATERIAL_PROPERTIES
- CPT_POINT_PARAMETERS
- CPT_PROJECT_CORRELATION_PARAMETERS
- CPT_PROJECT_PARAMETERS
- DESIGN_LINE
- DESIGN_LINE_DATA
The calculation will only take place if a Pastel Beige coloured field has been modified on the above tables. This allows you to change metadata fields that do not have any effect on the calculation without having to recalculate the CPT test.
The exception to this is the CPT_DATA table, and one to one child tables of CPT_DATA. The calculation will occur if any cell has been modified, regardless of colour.
The CPT calculation on POINT will only run when an existing POINT record has records on the CPT_DATA table, and the Elevation has changed and the new Elevation has a value.
The automated CPT calculation when saving on these tables can be stopped by checking Suppress_Automatic_Calculation on CPT_PROJECT_PARAMETERS. If it is checked, then the CPT will be flagged for pending calculation (see section Batch Calculation).
The calculation will not run when converting projects.
Unless the Suppress_Calculation_on_Import on CPT_PROJECT_PARAMETERS is checked, the calculation will take place upon import.
The table below lists the action taken on import under all combinations of the Suppress_Calculation_on_Import and Suppress_Automatic_Calculation values.
Suppress Calculation on Import | Suppress Automatic Calculation | Action Taken |
---|---|---|
FALSE | FALSE | CPT calculated |
TRUE | FALSE | CPT not calculated, not flagged pending calculation |
FALSE | TRUE | CPT Calculated |
TRUE | TRUE | CPT flagged pending calculation |
When calling gINT Rules > Recalculate Current Table from a CPT Table, a form will display, giving you the following options:
- Yes: will recalculate all CPTs in the project, this is equivalent to changing a value on the Project Parameter table. This is the fastest way to reevaluate the entire database of CPTs. A progress bar will be shown to display the progress of the calculation. This is normally the option to pick.
- No: will use gINT's native recalculate current table, which can be a very inefficient way to calculate the database of CPTs. This option is not recommended.
- Cancel: Cancels the call, and nothing is calculated.
Batch Calculation
The Batch Calculation feature allows you to make changes to the CPT data, and flag the affected CPTs as pending for calculation instead of running the calculation immediately. An example of where this feature may be useful is if you needed to enter the groundwater depth for each CPT on the CPT_GENERAL table. It is much more convenient to calculate the CPTs after you have entered the groundwater depth for all tests at once rather than calculate each time you change of the groundwater depth.
A CPT is flagged for calculation by inserting the current date time into the Calculation_Pending field on the CPT_GENERAL table. When the CPT is calculated, the Calculation_Pending field is cleared for that CPT.
The CPT Tool will flag CPTs for batch calculation in place of running the CPT calculation, if the Suppress_Automatic_Calculation checkbox on CPT_PROJECT_PARAMETERS is checked. Like the CPT calculation, the Batch Calculation feature will flag all CPTs that were affected by the change. For example, changing the values for a Cone ID record in the CPT_CONE_INFORMATION table will flag all CPTs that reference the modified Cone ID for batch calculation.
The Batch Calculation Form allows you to view a list of flagged CPTs that are pending calculation, and calculate all, or a selection of CPTs.
To launch the Batch Calculation Form, select INPUT | Add-Ins > Datgel CPT Tool > Batch Calculation, or press Ctrl + Shift + B.
You should see a window similar to the following.
The form will display a list of the CPTs that have been flagged as pending calculation on the Pending Tests to Calculate grid. When OK is clicked, the Batch Calculation Form will initiate the calculation for the CPTs that are listed on the Selected Tests to Calculate grid.
You may use a combination of left click, left click-drag, ctrl + click and shift + click to select the desired CPTs, and the arrow buttons in the middle to move CPTs to the right or left grid.
The available functions are:
- Show All Tests – Check this to show all CPTs in the Pending Tests to Calculate grid, regardless of if they have been flagged pending calculation. Uncheck to hide the non-flagged CPTs.
- Clear All Pending – Clears the Calculation Pending flag on all CPTs without calculating them.
- Select All Pending – Selects all CPT calculations pending
- OK – Closes the form and initiates the CPT calculation for CPTs listed in the Selected Tests to Calculate grid. Calculated CPTs will be cleared of the Calculation Pending flag. A progress form will appear to display the progress of the calculations.
- Cancel – Closes the form without calculating any CPTs.
Order of Calculation
The order of calculation is:
- Derived parameters
- Soil Behaviour Type
- Formula Tool – Library formulas
- Formula Tool – Project formulas
Calculation Settings
The calculation settings form may be displayed be either selecting Add-Ins > Datgel CPT Tool > Settings, or clicking on the Settings hyperlink located in the bottom left corner of the batch Calculation form.
Batch Calculation
- Batch Size Denominator: The denominator of the fraction applied to available memory in order to calculate the size of each sub-batch. The default value is 32, meaning that 1/32nd of available memory will be used to store each sub-batch's data.
- Log Formula Exceptions: Include errors from the Formula Tool formulas in the Batch Calculation Report, in order to help optimise the performance of formula calculations
- Maximum Strokes Per Sub-batch: This Setting applies to SQL Server databases only. If a batch contains a large number of short Strokes, then the length of the resulting queue of Strokes waiting to be processed will grow large. This may have a detrimental effect on the speed of the batch calculation. On SQL Server it may cause connection dropouts and failure to update a Stroke with the newly calculated values. Setting this value may help stop these kinds of issues. 30 is the default and recommended value. When set to 0, this setting is not applied.
Threading
- Maximum Threads Per Processor: Each CPT calculation is performed in a separate multi-tasking process called a "Thread". This specifies the maximum number of CPT calculations (Threads) that can be concurrently handled by a processor. 1 or 2 are the only recommended values.
- Processor Count Method: The number of CPUs on a computer can be calculated in a number of ways, depending on the number of actual CPUs installed, the number of cores in each CPU and whether the CPU has hyperthreading capabilities. The default value is "UseLogicalProcs", which includes cores and hyperthreading.
- Batch Queue Priority Size Factor: CPT calculation Threads retrieve raw data from a Queue. Priority can be given to Threads that insert raw data on the Queue by setting this factor to a number between zero and one. This number should not be changed unless you are instructed to do so by a member of the Datgel technical support team.
- Batch Queue Size Factor: CPT calculation Threads retrieve raw data from a queue. This setting controls the maximum size of the queue as a factor of the Thread Pool's maximum size. The default setting is 2. Only values between 2 and 4 are recommended.
- Thread Pool Size Factor: CPT Calculation Threads are recycled to save memory usage. This value sets the number of Threads the Thread Pool manages as a factor of the maximum concurrent Threads ("Maximum Threads per Processor" x "Number of Processors"). The default factor is 3. Only values between 3 and 6 are recommended.
These settings are included in order to change the way a computer organizes and manages memory and processor (CPU) resources while performing a CPT batch calculation. Different brands and models of PCs use memory and CPU resources in different ways. Therefore a batch calculation may run without errors on your desktop PC, but may run very slowly or run out of memory on another computer, such as your laptop. Due to the variety of brands and models of Windows PCs available, it is impossible to predict which computers will experience problems.
If, when using the default Calculation Settings, you experience slow performance, error messages referring to "OutOfMemoryExceptions" or failure of a number of calculations, you may need to adjust these Calculation Settings to suit your computer.
The first thing to try is to double the "Batch Size Denominator" value and run the calculation again. If you still experience errors after this step, then you should call Datgel for technical support and provide details of the problems encountered. One of our team will provide you with the configuration of these Settings that is most likely to address your specific problem.
If you have written any of your own Formula Tool formulae and included them in the batch calculation, you may find the speed of the calculations decreases dramatically. This is most likely because the formula is attempting many calculations on fields without values, or is attempting to divide by zero or other operations resulting in mathematical errors. You can set the "Log Formula Exceptions" setting to true to include additional information in the batch calculation Report. This will help you identify problematic formulas and the conditions causing the errors. Ensuring that you check for fields with no (null) values and zero denominators will generally avoid these kinds of problems.
Dissipation Test
The Dissipation test calculation is independent of the rest of the CPT table calculations. You may need to manually make the Dissipation test recalculate after changing relevant CPT parameters / data for a PointID.