FLAC3D 3.10 Modification List (Type PRINT VERSION to check version number.) Changes listed are included in F3310_32.EXE and F3310_64.EXE. Sub- Version Date Number MM/DD/YY ================================================================================ 420 12/19/06 ================================================================================ Official release version of FLAC3D Version 3.10. ================================================================================ 421 12/28/06 ================================================================================ Addressed 64-bit portability problems. ================================================================================ 422 01/02/07 ================================================================================ Hoek-Brown model no longer forces a stress point back to Hoek-Brown failure- surface if the iterative algorithm fails to converge. An error message is output instead. ================================================================================ 423 01/08/07 ================================================================================ Addressed 64-bit window creation problem. Bug fix in recording more than one history for recovered stresses in structural elements. e.g., HISTORY SEL RECOVER SRES SURFX ... If more than one history was created, then in large strain mode it was possible to get a "surface system not set at node" error. Bug fix: File names that contained ASCII character codes > 127 (characters with accents, foreign character sets, ...)were not recognized. ================================================================================ 424 01/16/07 ================================================================================ Hysteretic damping bug fix. If hysteretic damping was used with a model that was run on more than one processor then FLAC3D could crash. ================================================================================ 425 01/18/07 ================================================================================ PRINT DYNAMIC command now outputs damping type information based on what is set at zones and gridpoints. Added a PRINT ZONE DYNAMIC command to output hysteretic damping information for zones. Plotting bug fix. When block plots were created (e.g., PLOT BLOCK STATE), then deactivated in the plot window, the model run for a period of time, then that plot re-activated, FLAC3D would sometimes issue an error message. This has been corrected. ================================================================================ 426 01/19/07 ================================================================================ Put a lower cap on the hysteretic damping multiplier of 1e-3 to avoid shear modulus from becoming zero. ================================================================================ 427 01/25/07 ================================================================================ The "versus step" radio button did not work in the modify history plot item dialog. Bug fix which caused FLAC3D to occasionally crash when plotting. ================================================================================ 428 01/29/07 ================================================================================ Added USEGIVENIDS keyword to IMPGRID command. With this keyword, the ID numbers of gridpoints and zones specified in the *.FLAC3D file are used in the final grid. Otherwise gridpoints and zones are generated using the next available ID numbers (the default). Example usage: IMPGRID yourfile.flac3d USEGIVENIDS ================================================================================ 429 01/31/07 ================================================================================ Optimizations to IMPGRID command when USEGIVENIDS keyword is specified. ================================================================================ 430 02/05/07 ================================================================================ Bug fix which caused FLAC3D to occasionally crash when plotting. ================================================================================ 431 02/12/07 ================================================================================ Gridpoints can now belong to an unlimited number of different groups. Prior to this change, gridpoints were only allowed to belong to a maximum of 12 different groups. ================================================================================ 432 02/13/07 ================================================================================ Cylinder and cshell mesh primitives did not work properly if sweep angle was greater than 90 degrees. ================================================================================ 433 03/01/07 ================================================================================ Set default plot background to white instead of light gray. Plots were not always being refreshed when an existing plot window was reopened. Dangling pointers result when a variable points to an object (e.g. a zone) which no longer exists (e.g., the zone was deleted). Dangling pointers can cause unpredictable behavior if used to access the deleted object. FISH pointers are now checked before writing to sav files to see if they point to real objects. SET RANDOM command sets the seed for the random-number generator (used by the PROPERTY command) to the integer iseed. By default, iseed equals 10000. If a seed value is not given or is zero then the random number seed is reset to it default value of 10000. The seed is not reset by the NEW command. ================================================================================ 434 03/02/07 ================================================================================ GEN ZONE REFLECT now works with degenerate brick (dbrick) type zones. ================================================================================ 435 03/07/07 ================================================================================ Added NO_PP and CALC_PP keywords to WATER TABLE command. When a WATER TABLE FACE command is executed, the pore pressures are recalculated for all gridpoints using all the previously stored water table faces. For models with a large number of water table faces the computation time becomes excessive. The NO_PP keyword suppresses the pore pressure calculation (only the face is stored). The CALC_PP keyword can be used without any face specifications to force a recalculation of pore pressures using all stored water table faces. A WATER DENSITY command will also force a recalculation of pore pressures using all stored water table faces. Example usage: ; store a water table face only, no pore pressures are calculated water no_pp table face 2.5490e+003, 1.0200e+004, 2.9591e+003 ... ; store a new face and recalculate pore pressures using previously stored faces water table face 2.5490e+003, 1.0200e+004, 2.9591e+003 ... ; recalculate pore pressures using previously stored water table faces water calc_pp ; recalculate pore pressures using previously stored water table faces and new ; water density water dens 1000 ================================================================================ 436 03/19/07 ================================================================================ GEOM_TEST did not return proper values if run with a tetrahedral grid. Cut plane dialog did not update the cut plane properly if user changed a dip or dipdir value and selected OK without tabbing out of the field first. SOLVE ELASTIC didn't work if a zone with a Null model was encountered (because it wasn't a Mohr-Coulomb model). Models with Null and Mohr-Coulomb zones now work with SOLVE ELASTIC. ================================================================================ 437 03/27/07 ================================================================================ Bug fix to BLOCK STATE plot item. Error would occur if there were no zones to display. Also user choices NOW, PAST, NOT were not saved (e.g., PLOT BLOCK STATE NOW). ================================================================================ 438 04/03/07 ================================================================================ Bug fix to contour legend. Extra contour interval was sometimes shown in the legend (e.g., a null interval from 0.00 to 0.00). ================================================================================ 439 04/03/07 ================================================================================ Added new FISH function for retrieving hysteretic damping values from zones. value = z_hyst(p_z, vname) vname is a string with the following possible values: 'c0','c1','c2','c3','modfac','model' 'e1','e2','e3','e4','e5','e6' 'c0', 'c1', 'c2', 'c3' = 1st through 4th parameter of hysteretic model 'model' = hysteretic model identification number, return values as below 0 = no hysteretic damping 1 = default model 2 = off 3 = sig3 model 4 = sig4 model 5 = hardin model 'modfac' = current modulus reduction factor for this zone 'e1',...'e6' - strain components (gamma1, ... gamma6 in equations 3.34-3.39 Optional Features manual) If the zone does not have a hysteretic damping model then a value of zero is returned. Search time optimization to FISH functions p_z = find_zone(id) and p_g = find_gp(id). Search time reduced from O(n) to O(log n). Faster importing of grids with IMPGRID command when USEGIVENIDS is used. Contour plots of extra variables were not being refreshed during solving. Bug fix to interfaces. A math error (e.g., sqrt of a negative number) would sometimes occur when interfaces were used. This has been attributed to a bug in the optimization compiler (optimizations are now turned off for interface calculations). If a zone is experiencing plastic flow and hysteretic damping is active, then the strain path components (equations 3.34-3.39 Theory and Background) are rolled back to their previous state. The sequence of events is outlined below: 1) calculate hysteretic damping multiplier with accumulated strains 2) call the constitutive model using the multiplier 3) if all the tet overlays in a zone are yielding then subtract strain path components from the currently stored values in the hysteretic damping model. ================================================================================ 440 04/27/07 ================================================================================ In a dynamic analysis with Rayleigh or hysteretic damping, the constitutive model bViscous state flag is used to indicate whether or not plastic flow is occurring in the sub-zones. If plastic flow is occurring then bViscous is set to false. If the model is in the elastic range, bViscous is set to true. FLAC3D sets bViscous to false before calling the constitutive model for each tetrahedron in the overlays. In FLAC3D a value of false for bViscous inhibits the stiffness-proportional Rayleigh damping term. The bViscous flag was not set in several of the constitutive models and as a result stiffness-proportional Rayleigh damping was always inhibited in the following models: anisotropic, orthotropic, Drucker, Ubiquitous-Joint, Strain-Softening, Soft-Ubiquitous-Joint, Cam-clay, Double Yield, Finn, Hydration, Viscous, Power law, W.I.P.P., C.W.I.P.P., Burger-Creep, P.W.I.P.P., Burger creep-viscoplastic. Stiffness-proportional Rayleigh damping is now allowed when these materials are in the elastic range (and inhibited otherwise). The Hoek-Brown constitutive model always enabled stiffness-proportional Rayleigh damping terms. These are now inhibited if the material has no strength (i.e, Sigma_ci <= 0) or the material is yielding. If hysteretic damping is active, FLAC3D also uses the bViscous flag to determine whether or not to correct the hysteretic damping strains (see revision 439 above). If all tetrahedral overlays in a zone have bViscous set to false (all tets are plastically flowing) then the hysteretic damping strains are corrected. The constitutive models mentioned in the previous two paragraphs will be affected if they were used with hysteretic damping. Nodal Mixed Discretization (NMD) is now enabled for all the constitutive models except for P.W.I.P.P., Burger creep-viscoplastic and viscoplastic-power. Prior to this change NMD was functioning in Mohr-Coulomb and Strain-Softening models as well as the following models (which do not require a NMD plastic stress correction): elastic, anisotropic, orthotropic, Viscous, Power law, W.I.P.P., C.W.I.P.P., Burger-Creep. This revision added the NMD plastic stress correction to the following models: Drucker, Ubiquitous-Joint, Soft-Ubiquitous-Joint, Cam-Clay, Double Yield, Hoek-Brown, Finn, and Hydration. These changes are also reflected in the user defined constitutive models source code. ================================================================================ 441 05/03/07 ================================================================================ When a water table was created with the WATER TABLE FACE command, the algorithm sometimes failed to assign pore pressures to some gridpoints. These gridpoints were located near the edges of water table faces. ================================================================================ 442 05/24/07 ================================================================================ Added a group name to tracks e.g., track line 0 .1 0.5 0 .1 2.5 20 group AAA and range logic for particle track plotting e.g., plot add track cyan range group AAA Groups can only be assigned to tracks when they are created. An xyz type range will also work for track plotting, however, as the particle travels with the fluid its position changes so it may move in and out of various xyz ranges. e.g., plot add track cyan range x -1 2 will plot all tracks currently within x -1 2 as cyan Hoek-Brown constitutive model did not always converge, typically when the model was in tension. This is now fixed. ================================================================================ 443 06/12/07 ================================================================================ Restricted SOLVE FOS to small strain simulations. In coupled fluid-mechanical simulations a saturation change causes the saturated density contribution to body force to change. This component was not being updated. When contouring zone related quantities, the zone values are first projected to gridpoints using either a gradient (default) or average method. A least-squares curve fitting process is used in the gradient method and degenerate matrices are sometimes encountered (not-enough data to compute gradients or data does not vary enough). In these degenerate cases, spurious contours sometimes appeared in the contour plots. This has been fixed. ================================================================================ 444 06/13/07 ================================================================================ Bug fix to restoring sav files. A stream I/O error message would sometimes appear when attempting to restore a sav file. ================================================================================ 445 06/26/07 ================================================================================ Improvements to contour plotting with gradient method. The command "INTERFACE n WRAP GroupA GroupB" had the restriction that it would only put an interface on open faces in GroupA that had gridpoints that exclusively belonged to GroupA. This restriction has been removed. Added FISH read only access to gridpoint x- y- z-accelerations: gp_xaccel(pg), gp_yaccel(pg), gp_zaccel(pg). This is only available if the model is configured for dynamics. Histories of gridpoint x- y- or z-accelerations were always available but are not documented in the Command Reference. These accelerations are only available if the model is configured for dynamics. e.g. history id n gp xacceleration {or yacceleration, zacceleration} x y z {or id m} ================================================================================ 446 06/26/07 ================================================================================ Bug fix to FISH library. Any FISH code would crash. ================================================================================ 447 06/26/07 ================================================================================ Plotting bug fix. If mechanical zones are made null their stress state is set to zero. Prior to this change, the zone stresses that were stored prior to making the zone null were not zeroed, making it appear as if null zones could carry stresses. ================================================================================ 448 06/28/07 ================================================================================ The command "IMPGRID yourfile.FLAC3D USEGIVENIDS" has been modified to allow reading of partial grid definitions. For example if you have the following grid files: g1.FLAC3D - gridpoint definitions g2.FLAC3D - more gridpoint definitions g3.FLAC3D - more gridpoint definitions z13.FLAC3D - zone definitions using gridpoint ids from g1 and g3 z12.FLAC3D - zone definitions using gridpoint ids from g1 and g2 groups.FLAC3D - groups that zones fall into ... you can now import the grid piecemeal as follows: IMPGRID g1.FLAC3D USEGIVENIDS IMPGRID g3.FLAC3D USEGIVENIDS IMPGRID z13.FLAC3D USEGIVENIDS IMPGRID g2.FLAC3D USEGIVENIDS IMPGRID z12.FLAC3D USEGIVENIDS IMPGRID groups.FLAC3D USEGIVENIDS The only requirement for this to work is gridpoints must exist prior to creating the zones that require them. Also, zones must exist prior to placing them in groups. With the USEGIVENIDS keyword, FLAC3D will not renumber the gridpoint or zone ids; it will use the ids as specified in the input files. ================================================================================ 449 07/06/07 ================================================================================ Added USEFREEGPS keyword to the GEN ZONE command. Prior to this change the GEN ZONE command would only reuse (merge with) gps that existed on boundary faces of the existing grid. If a user generated gps with the GP command and these gps were not connected to any zones then these gps were not considered in the GEN ZONE command when searching for gps to merge with. These 'free' gps are now used in the GEN ZONE command if the USEFREEGPS keyword is given. This gives users the potential to create gps with given ids at specified locations. e.g., gp id 100 0 0 0 gp id 200 1 1 1 gp id 300 0.5 0 0.5 gen zone brick size 2 2 2 p0 0 0 0 p1 1 0 0 p2 0 1 0 p3 0 0 1 usefreegps plot sur yell gpnum on gps 100 200 300 exist in the grid when usefreeps is specified otherwise they are not connected to any zones. ================================================================================ 450 07/19/07 ================================================================================ FLAC3D would occasionally crash if you tried printing to an inaccessible printer. This has been fixed. ================================================================================ 451 08/01/07 ================================================================================ A stress leak that could occur in partially saturated zones under volumetric straining has been corrected. The bug fix addresses coupled drained/undrained fluid mechanical simulations under unsaturated conditions. For those simulations, stresses in the unsaturated part of the domain may have been affected provided fluid bulk modulus was non-zero there. ================================================================================ 452 08/20/07 ================================================================================ Not all plot items were refreshed in a view during cycling. E.g. in a small strain problem, plotting the grid geometry with a magnification factor > 0 (plot grid mag 100) would result in the plot not getting refreshed. All plot items are now refreshed during plotting. Added readonly FISH function gp_ppfix(p_g). Returns 1 if the gridpoint has a fixed pore pressure, returns 0 otherwise. Added a new plot item which plots a marker (a circle) at gridpoints with a fixed pore pressure. e.g., PLOT PPFIX RED SCALE 0.01 RANGE X -0.1 0.1 ================================================================================ 453 08/23/07 ================================================================================ The APPLY command would sometimes cause FLAC3D to crash when applied items were removed. This has been fixed. FLAC3D would crash if a FISH scalar variable such as dytime was accessed before a CONFIG DYNAMIC command was issued. FLAC3D now returns 0 for FISH scalars fltime, dytime, crtime, thtime, fldt, dydt, crdt, thdt, fluid_ratio, therm_ratio if FLAC3D has not yet been configured for the associated model with command CONFIG {DYNAMIC, FLUID, THERMAL}. Modified functionality of SET VISIBLE {MECHANICAL, FLUID THERMAL} command. The SET VISIBLE command specifies which zones to consider as non-null when creating contour plots. SET VISIBLE MECHANICAL, for example, will signify to FLAC3D to show all zones with a non-null mechanical model in contour plots (zones with a null mechanical model assigned will not be shown). All zones with the specified visible model (one of type mechanical, fluid, or thermal) will contribute data to the contour plot independent of the variable being plotted. For example, if SET VISIBLE FLUID is specified then all zones with a live fluid model (fl_isotropic or fl_anisotropic) will contribute data to contour plot. fl_null zones or zones that haven't been assigned a fluid model will not contribute data to contour plots. If a stress plot (e.g., PLOT CONT SZZ) is created with SET VISIBLE FLUID specified then all zones containing a live fluid model will contribute data to the average or gradient method used for contouring SZZ whether or not that zone has a live mechanical model. In this case if a zone doesn't have a live mechanical model then that zone will contribute a zero value to the average or gradient method used for contouring. With SET VISIBLE FLUID all zones with fl_null or unassigned fluid model will NOT contribute data to the average or gradient calculations. It is advisable to specify SET VISIBLE MECHANICAL when plotting any values that are associated with a mechanical model (e.g., stress, strain, any zextra variables that are derived from mechanical quantities, ...). SET VISIBLE FLUID or THERMAL should be specified when contouring data that is meaningful with respect to a fluid or thermal model respectively. Prior to this change, FLAC3D attempted to classify some of the plot quantities. For example, a contour plot of SZZ would be classified as a mechanical model type of plot and zones without a mechanical model or a null mechanical model would not contribute to the average or gradient calculations regardless of what SET VISIBLE was set to. With the change in this sub-version, FLAC3D no longer makes this assumption about plot quantities. ================================================================================ 454 09/04/07 ================================================================================ Fixed bug in uwedge gridding primitive. FLAC3D was not able to generate a uniform wedge in some cases where the aspect ratio of the uwedge was too high. ================================================================================ 455 09/26/07 ================================================================================ The line "*** Add xxxx to all labels ***" would appear above the contour label caption if the max and min contour limits were almost identical. This allowed small variations in contours to be discerned (e.g., if the highest contour value was 2.0000001e10 and the lowest contour value was 2e10 then the caption would display "Add 2e10 to all labels" with the contour intervals between 0 and 0.0000001e10. This feature has been removed. Bug fix with PLOT PRINT VIEW command. If a plot window was not open then PLOT PRINT VIEW would cause a Windows error. Increased the search angle tolerance when FLAC3D searches for free faces to connect liner nodes to zones with node-zone links. Prior to this, liner nodes may not have had a node-zone link created. This problem appeared if zone faces were not planar. ================================================================================ 456 11/01/07 ================================================================================ Increased the search angle tolerance when FLAC3D searches for free faces to connect liner nodes to zones with node-zone links. Prior to this, liner nodes may not have had a node-zone link created. This problem appeared if zone faces were not planar. Bug fix to Finn constitutive model. Not all Finn state variables were saved. Results would differ if a run was continued from a restored state rather than running the model from start to finish completely (without an intermediate save restore). If gravity is non-zero and a mechanical calculation is performed, FLAC3D now checks for positive densities in zones. ================================================================================ 457 11/16/07 ================================================================================ Bug fix for thermal calculations with the th_null model. The null thermal model (th_null) did not behave as an adiabatic boundary in the following scenario: A model was created with a non-null thermal model (e.g., th_iso). This model was run for one or more cycles. After cycling some of the non-null thermal zones were replaced by th_null zones and cycling was continued. Proper adiabatic behaviour was modeled if th_null zones were installed prior to any cycling. The Hoek-Brown constitutive model was unable to bring the stress point back to the Hoek-Brown surface in some tensile stress states and an error message was displayed. This has been fixed. ================================================================================ 458 11/16/07 ================================================================================ Further enhancement to Hoek-Brown model. With unrealistic initial conditions, such as having stresses outside the yield surface without any accumulated strain, the Hoek-Brown model would use a flow paramater, gamma, equal to zero. The flow parameter is now calculated from the current stress state whether or not incoming strain is non-zero. ================================================================================ 459 11/29/07 ================================================================================ Stress tensors with extremely small components could not always be resolved into principal components and an error message would be displayed. This has been fixed. ================================================================================ 460 12/13/07 ================================================================================ Added a COLBYORDER (color by order) keyword to the STENSOR plot item. When COLBYORDER is ON, principal stress components are plotted with three colors. SMin (most negative, most compressive) principal stress is plotted in color 1. SMax (most positive, most tensile) principal stress is plotted in color 2. SMid (the intermediate) principal stress is plotted in color 3. Prior to this change the STENSOR plot item displayed the principal stress triad in two colors: color 1 for compressive stresses and color 2 for tensile stresses. Example usage: PLOT STENSOR COLBYORDER=ON PLOT STENSOR CO=ON YELLOW GREEN ORANGE When assigning floating point values to FISH variables, FISH only recognized a lowercase 'e' when an exponential format was used (e.g., value = 1e8). FISH now also recognizes an uppercase 'E' (e.g., value = 1E8). ================================================================================ 461 01/04/08 ================================================================================ Added FISH function pz = z_containing(x,y,z). This function returns a pointer to a zone that contains an arbitrary point with coordinates x,y,z. Null is returned if x,y,z does not reside in any zone. Bug fix to structural element creation. When structural elements were created with nodes near the faces of zones, FLAC3D would sometimes have difficulty finding a zone to create new node-zone links with. ================================================================================ 462 01/15/08 ================================================================================ FLAC3D would crash during solving if a structural element node had a node-node link pointing to a deleted node. FLAC3D now outputs an error message. Hoek-Brown model would not coverge when s1 = s3 and both principal stresses were tensile and below the apex of the Hoek-Brown strength envelope. These stress points are now moved to the apex. ================================================================================ 463 02/14/08 ================================================================================ The GEN SEPARATE groupname command now works with zones that are partially connected to other zones. Prior to this change, GEN SEPARATE would only separate gridpoints on a zone face if that zone face shared all its gridpoints with an adjacent zone. The separation criterion is now based on the groups a gridpoint belongs to. If a gridpoint is shared by a zone belonging to groupname and a zone not belonging to groupname then that gridpoint is duplicated with the new gridpoint replacing the old gridpoint in groupname. Added a plane-strain free-field. This free-field is invoked with the keyword Y_PLANE or X_PLANE on the APPLY FF command. If the Y_PLANE keyword is given then displacements in the y-direction are automatically fixed, initial y-velocities are set to zero and an appropriate 1D free-field is created on the x-min and x-max extents of the grid. Similarly if the X_PLANE keyword is given then displacements in the x-direction are fixed etc. FLAC3D 64-bit now works with remote desktop (FLAC3D 32-bit already worked with remote desktop). ================================================================================ 464 02/19/08 ================================================================================ FLAC3D would output a divide by zero error in a dynamic analysis if structural elements did not have any free degrees of freedom (all nodes were fixed). The stable timestep is inversely related to the maximum frequency of a structual element node (which was zero in this case). If there aren't any free DOFs for structural elements then the stable timestep is governed by other components in the model (e.g., zone stiffness). Added z_vol_deformed(zp) FISH function which returns the volume of a zone using gridpoint positions that take into account the accumulated displacement at the gridpoints (intended to be used in small strain calculations). If a model contained zones and interfaces and zones were deleted followed by saving the model, FLAC3D would sometimes crash. Interface nodes point to their host zone (the zone it is connected to) as well as to a target zone (the zone it interacts with). When a zone was deleted the interface node pointer to the deleted target was not updated. This has been fixed. Stepping the model before saving also resolves this problem because target pointers are refreshed at the start of stepping. ================================================================================ 465 02/27/08 ================================================================================ Added the capability to delete interfaces completely. Prior to this change an INTERFACE N DELETE command would only delete the interfaces and nodes and elements (the interface with 0 nodes and 0 elements would still exist). In FISH, the interface pointers i_node_head and i_elem_head now return null if the list is empty. Prior to this change a node or element with id number = 0 was returned. Added FISH functions numnodes = s_get_nforce(s_ptr, ndforcearray, ndptrarray) and nwritten = s_put_nforce(s_ptr, ndforcearray) Function s_get_nforce gets the nodal forces from the structural element pointed to by s_ptr. On return, the nodal forces are placed into array ndforcearray which must be size of at least 6 * number of nodes the SEL contains. This function returns the number of nodes the sel has (2 or 3) and also places the pointers to these nodes in array ndptrarry which must be size of at least the number of nodes the SEL has. The forces in ndforcearray are in the global coordinate system and are arranged as follows: ndforcearray(1) = force_x for node 1 ndforcearray(2) = force_y for node 1 ndforcearray(3) = force_z for node 1 ndforcearray(4) = moment_x for node 1 ndforcearray(5) = moment_y for node 1 ndforcearray(6) = moment_z for node 1 ndforcearray(7) = force_x for node 2 ndforcearray(8) = force_y for node 2 ... ndforcearray(18) = moment_z for node 3 Function s_put_nforce puts the nodal forces that are stored in array ndforcearray into the structual element's nodes. On return nwritten holds the number of values that were written to the SEL nodes (either 2*6 or 3*6 depending on the type of SEL). ndforcearray is assumed to have nodal forces in the global coordinate system. ================================================================================ 466 04/08/08 ================================================================================ Bug fix to strings. Strings are reference counted. If the number of instances of a string exceeded 2^16 then FLAC3D would crash. The reference count limit has been increased to 2^32. If a PLOT EXTRACT point fell precisely on a zone surface this point would sometimes be treated as falling outside the zone in the PLOT EXTRACT logic. This has been fixed. When creating a new node-node link on side2 of an embedded liner with the SEL LINK sid SIDE2 TARGET NODE TGT_NUM tid command the side2 keyword was ignored (the side2 keyword was not ignored when creating a node-zone link). ================================================================================ 467 04/10/08 ================================================================================ Plots containing text labels that were output to bitmap based files (bmp, pcx, dcx, avi, Windows clipboard) had a white background surrounding the text. Text now has a transparent background in these file types and matches the image displayed in the plot window. Modified friction scaling in Solve FOS routine. If friction is scaled during bracketing (non-associated flow rule) and dilation angle is greater than the scaled friction angle then dilation is set equal to friction. Friction angle is now clamped to fall within the 0 to 89 degree range when bracketing. When plotting multiple graphs on the same plot (e.g. PLOT TABLE 1 LINE 2 LINE) extraneous lines sometimes appeared on the plot. Screen was not refreshed after issuing a PLOT SET DISTANCE command. ================================================================================ 468 05/09/08 ================================================================================ When plotting applied nodal forces (PLOT SEL FAPP) the forces are plotted as a mix of global and local coordinate systems and it was impossible to decipher which applied force was global and which was local. Also, forces applied in a local coordinate system were plotted in the global coordinate system without an appropriate rotation (e.g., a force in the local x direction was plotted in the global x direction). Applied nodal forces are now plotted in the global coordinate system. Added NOW and PAST switches to PLOT INTERFACE SLIP SHEAR command. These switches are only available on the command line. PLOT INTERFACE SLIP SHEAR PAST will only plot points that have slipped in the past (points that are currently slipping are not plotted). PLOT INTERFACE SLIP SHEAR NOW will only plot points that are currently slipping (points that have slipped in the past are not plotted). If NOW and PAST are not specified then slipping now and slipped in the past points are plotted. ================================================================================ 469 05/16/08 ================================================================================ The FLACEXTRUDE command was unable to locate the FLAC 6.0 executable. This has been fixed. ================================================================================ 470 05/28/08 ================================================================================ Optimizations made to structural element calculations. FLAC3D would return with an access denied error when trying to print to some network printers. This has been fixed. ================================================================================ 471 07/03/08 ================================================================================ The Hoek-Brown model makes three attempts to bring a stress point to the yield surface. 1) a fast Newton solver is tried. 2) if 1 did not converge the stress point is checked to see if it falls below the apex of the Hoek-Brown envelope (crossed the sigma1 = sigma3 line). If this is the case then the stress point is set to the apex. 3) if 1 and 2 did not work a bisection method is used to find the stress point on the yield surface. The hb_ind property reflects the attempts made to bring a stress point to the yield surface. Each zone contains a number of tetrahedral subzones which are sent in sequence to the constitutive model. When the first subzone is received by the Hoek-Brown model, the Hoek-Brown model sets hb_ind to 0. If case 1 works hb_ind is set to max(hb_ind, number of iterations required by Newton solver). If case 2 is encountered hb_ind is set to max(hb_ind, 1000) If case 3 is encountered hb_ind is set to max(hb_ind, 1000 + iterations required by the bisection algorithm) If none of the cases work then hb_ind is set to 9999. hb_ind contains the highest value (of hb_ind) encountered for all the subzones in a zone encountered during a cycle. Possible values for hb_ind are summarized below: hb_ind = 0 - all subzones had stresses in the elastic range 0 < hb_ind < 1000 - Newton solver was used on one or more of the subzones (hb_ind = max number of iterations required by Newton solver) hb_ind = 1000 - stress point forced back to apex on one or more of the subzones hb_ind > 1000 - bisection solver was used on one or more of the subzones (number of iterations of bisection solver = hb_ind - 1000) hb_ind = 9999 - Hoek-Brown model did not converge ================================================================================ 472 08/13/08 ================================================================================ In the FISH CASE statement, the maximum range has been increased to 1000, from 255. E.g., the following is now supported CASEOF expression CASE 0 ... CASE 999 ; some code CASE 1000 ; some code ENDCASE The ubiquitous joint model when run in large strain mode updates the joint dip and dip direction properties (rigid body rotation correction). However, the updated dip and dipdir were stored in radians instead of degrees. ================================================================================ 473 09/02/08 ================================================================================ The command PRINT INTERFACE n TARGET outputs information about an interface node's target face. The last column that is output by this command (labelled update) should reflect whether or not the interface's update option has been set. The update keyword on the interface command allows (update on) or prevents (update off) the search for new contacts after movement occurs on an interface. The status of the update switch was displayed incorrectly (No was displayed instead of Yes). This has been fixed and changed to display On/Off instead of Yes/No. On/Off is now displayed in the update field to indicate update on/off respectively. System commands run from FLAC3D would sometimes produce error messages when none were actually generated. ================================================================================ 474 09/04/08 ================================================================================ FLAC3D would occasionally crash if a plot containing zones and gridpoints was displayed and zones or gridpoints were deleted. Added FISH function z_apply(zptr, iface, sAppItem, sOption) zptr = pointer to a zone iface = integer index to a face on the zone (1-6) sAppItem = string, one of 'sxx','syy','szz','sxy','syz','sxz', 'dstress','sstress','nstress' sOption = string, one of '', 'add', 'mul', 'remove' z_apply can be used to apply stresses to a zone face. It must be used on the left side of an equals sign. Example, z_apply(zptr, 4, 'szz', '') = -2.0 applies an szz stress of -2.0 to face 4 of zone pointed to by zptr z_apply(zptr, 4, 'szz', 'add') = -7.0 adds -7.0 to szz on the same zone face as above z_apply(zptr, 4, 'szz', 'mul') = 2.0 multiplies the currently stored applied value of szz by 2.0 z_apply(zptr, 4, 'szz', 'remove') = 0.0 removes remove the szz apply item ================================================================================ 475 10/17/08 ================================================================================ Fixed FLAC3D crash which occasionally occurred during making movies. System commands would sometimes not wait for the process to complete before returning control to FLAC3D. Added logic to account for direct generation of pore pressure increment by a UDM (using state variable dPPInc). Hysteretic damping bug fixes when NMD is on. - If hysteretic damping was used with a model that was run on more than one processor then FLAC3D could crash. - Put a lower cap on the hysteretic damping multiplier of 1e-3 to avoid shear modulus from becoming zero. ================================================================================ 476 10/28/08 ================================================================================ Added FISH function z_iecreate to create interface elements on a zone face. n = z_iecreate(zptr, iface, id) where n = number of interface elements created zptr = pointer to a zone iface = face number on the zone (integer, 1-6) id = ID number of the interface to be created (integer > 0) Modified FISH function z_facenorm which returns the area and normal to a zone face as described below: array idarr[3] ; contains gp id numbers or a face index array facenormal[3] ; returns with x,y,z components of a face normal vector facearea = z_facenorm(zptr, idarr, facenormal) idarr can contain gridpoint id numbers of 3 unique gridpoints on the zone face (this is the original implementation). If idarr[2] = 0 and idarr[3] = 0 then idarr[1] can contain an index to the face on the zone (an integer between 1 and 6 inclusive). The latter is the updated functionality. Added FISH functions for plane orientation dipddfromnorm(normal, dip_dd) ; calculate dip and dipdir from normal vector normfromdipdd(normal, dip_dd) ; calculate normal vector from dip and dipdir array normal(3) ; normal vector (+x,+y,+z)=(East,North,Up) array dip_dd(2) ; dip and dipdir in degrees ; dip measured positive down from horizontal (0 degrees) ; dipdir measured positive clockwise from North (0 degrees) ================================================================================ 477 11/20/08 ================================================================================ Interface creation/delete commands now outputs number of nodes and elements created/deleted . Geometric ranges used in interface plotting are now based on interface element centroids and node positions rather than the average position of the entire interface. e.g., plot interface location range id 5 7 x 7.0 9.5 will plot interface elements that have their centroids within x 7.0 9.5 and also belong to interfaces 5 through 7 e.g, plot interface slip shear range id 1 x 7.0 9.5 will plot shear slip state at interface 1, with nodes located between x 7.0 9.5 Inertial density used in the equations of motion did not include fluid contributions. ================================================================================