The Run-Analysis defines some Global variables that cannot be modified. These variables are listed as follow:
Variable | Description |
---|---|
rank | The processor number defined at Definitions::rank |
size | The number of partitions defined at Definitions::size |
nDimensions | The problem dimension (1D, 2D, 3D) defined at Definitions::nDimensions |
filePath | The folder path where the file is loaded defined at Definitions::filePath |
fileName | The file name to be loaded defined at Definitions::fileName |
driverFile | Whether the driver (JSON) file is provided defined at Definitions::driverFile |
UpdateOption | The update option for member in Mesh defined at Definitions::UpdateOption |
MassFormulation | The element mass formulation defined at Definitions::MassFormulation |
LumpedStorage | Maximum memory for lumped storage sparse matrix defined at Definitions::LumpedStorage |
ConsistentStorage | Maximum memory for consistent storage sparse matrix defined at Definitions::ConsistentStorage |
numberOfFreeDofs | Total number of free-degree-of-freedom defined at Definitions::numberOfFreeDofs |
numberOfTotalDofs | Total number of total-degree-of-freedom defined at Definitions::numberOfTotalDofs |
numberOfConstrainedDofs | Total number of constrained-degree-of-freedom defined at Definitions::numberOfConstrainedDofs |
PMLStorage | Maximum memory for PML 3D storage sparse matrix defined at Definitions::PMLStorage |
In particular, the UpdateOption
specifies how the internal variables are going to be updated in the Run-Analysis. Currently, there are three options:
The other variables are employed in order to allocate memory to create the mass, damping, stiffness and transformation matrices (enforce restrains and constraints) in the Assembler. These variables are computed during the Pre-Analysis, specifically at 01-Pre_Process/Core/Numberer.py functions FindDefectiveNodes and PlainScheme.
REFERENCE:
Global properties are handled by two dictionaries: Entities
and Options
The Entities
dictionary is defined at 01-Pre_Process/Core/Definitions.py and stores all information regarding the finite element simulation.
The Entities
dictionary fields are defined below:
Simulations : Dictionary that stores the simulation information. The dictionary is transformed into json format to be used in the Run-Analysis with the structure specified as follows:
Example
The nodes in Entities defined in SVL can be accesses as:
SVL.Entities['Nodes']
Application
Please refer to any file in 03-Validations/01-Debugging/ to see examples on how to modify the Entities
fields.
Similarly, the dictionary Options
is defined at 01-Pre_Process/Core/Definitions.py and stores all user's inputs or configuration.
The Options
dictionary fields are defined below:
nconsistent : The number of sparse terms in the stiffness/mass matrix.
Example
The Options can be modified in SVL as:
SVL.Options['numbering'] = 'CutHill-McKee'
SVL.Options['dimension'] = 3
SVL.Options['update'] = 'Progressive'
Application
Please refer to any file located at 03-Validations/01-Debugging/ to see examples on how to modify the Options
fields.
In addition, some useful functions are defined at 01-Pre_Process/Core/Utilities.py when using the Python command interface. For example,
Entities
. See linkPythonDefinitions for some field namessaveAs(name):
This function saves in a python file all Entities
defined so far in python command prompt
Example
The command line screen can be cleaned as:
SVL.clc()
Example
The nodes in Entities can be printed on the screen as:
SVL.printAll('Nodes')
SVLclasses
dictionary stores the information of the material, section, and element classes available in SVL. The SolverOption
dictionary has the available option of the solver, and ConvergeTest
dictionary the available test that can be performed during the Newton-Raphson method.The C++ 02-Run_Process/12-Utilities/Definitions.cpp file provides with the Global variable declarations. These variables are defined inside the "Global" JSON field indicating its property as follows,
{ "Global": { "ndim" : int, "ntotal": int, "nfree" : int, "update" : str, "massform" : str } }
Variable | Description |
---|---|
ndim | Model's number of dimensions, for 2D ndim=2 and for 3D ndim=3 . |
ntotal | Number that specifies the total number of degree of freedom in the mesh. |
nfree | Number that specifies the free number of degree of freedom in the mesh. This is the total number of degree of freedom minus the restrained and the constrained degree of freedom. |
update | Specifies how the internal variables in Node, Material, Section, and Element are going to be updated. currently RESTARTABLE , PROGRESSIVE , and TRANSMISSIVE are allowed. |
massform | The mass matrix formulation, currently LUMPED , CONSISTENT are allowed. |
ndim
is extremely important and must be consistent with the Node, Element and Material employed in the analysis.A 3D GLOBAL environment is set with a total of 100 degree of freedom of which 80 are free as follows:
{ "Global": { "ndim" : 3, "ntotal" : 100, "nfree" : 80, "mass" : "CONSISTENT" } }