The Linear keyword creates an algorithm that solves the linear system between two states in just one step. This algorithm is meant to be used in linear analysis for which the system \(\mathbf{K}_{\textrm{eff}} \, \Delta U = \textrm{F}_{\textrm{eff}}\) is solved.
REFERENCE:
The python Pre-Analysis in the 01-Pre_Process/Method/Attach.py file provides with an interface to create a Linear. We use the addAlgorithm() as follows:
addAlgorithm(tag, attributes):
Example
A ALGORITHM can be defined using the python interface as follows:
SVL.addAlgorithm(tag=1, attributes={'name': 'Linear', 'nstep': 1})
Application Please refer to C07-ST_Lin_3DCantilever_Elastic_Truss2 file located at 03-Validations/01-Debugging/ to see an example on how to define a LINEAR algorithm using the addAlgorithm function.
On the contrary, the 01-Pre_Process/Method/Remove.py file provides with an interface to depopulate the Entities
dictionary. For example, to remove an already define Algorithm, use:
The C++ Run-Analysis in the 02-Run_Process/09-Algorithms/01-Linear/Linear.cpp file provides the class implementation. A Linear is created using the built-in json parse-structure provided in the Driver.hpp and is defined inside the "Simulations" json field indicating its "Tag" as follows,
{ "Simulations": { "Tag": { "combo": int, "attributes": { "algorithm": { "name": "LINEAR", "nstep": int, "cnvgtol": double, "cnvgtest": int } } } } }
Variable | Description |
---|---|
combo | The combination to which this Algorithm will be defined. |
cnvgtol | The minimum tolerance allowed to stop iterating. |
nstep | Maximum number of iterations for which the algorithm will be forced to stop. |
cnvgtest | Test number to compute the residual error. |
cnvgtol
in this class is not used. cnvgtest
number is not used. nstep
=1, a different value will be ignored.