Seismo-VLAB  1.3
An Open-Source Finite Element Software for Meso-Scale Simulations

Background

The EigenSolver keyword creates a solver that uses the Cholesky-decomposition on the matrix \(\textbf{K}_{\textrm{eff}}\), and then solves the upper triangular system. This function is meant to be employed to symmetric and positive-definite structure of \(\textbf{K}_{\textrm{eff}}\).

REFERENCE:

Pre-Analysis

The python Pre-Analysis in the 01-Pre_Process/Method/Attach.py file provides with an interface to create a Linear. We use the addSolver() as follows:

  • addSolver(tag, attributes):

    • tag : The identifier of this solver, i.e., tag > -1
    • attributes : Specific properties for the created solver, for example
      • 'name' : The solver's name, in this case EIGEN
      • 'update' : ON for nonlinear, OFF for linear

    Example

    A EIGEN solver can be defined using the python interface as follows:
    SVL.addSolver(tag=1, attributes={'name': 'Eigen', 'update': 'OFF'})

    Application Please refer to any python file located at 03-Validations/01-Debugging/ to see an example on how to define a EIGEN solver using the addSolver 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 Solver, use:

  • delSolver(tag):
    • tag : The identifier of the solver to be removed, i.e., tag > -1

Run-Analysis

The C++ Run-Analysis in the 02-Run_Process/11-Solvers/01-Direct/EigenSolver.cpp file provides the class implementation. A EigenSolver 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": {
                "attributes": {
                    "algorithm": {
                        "name": "EIGEN",
                        "update": int
                    }
                }
            }
        }
    }
    
    Variable Description
    update Specifies if the analysis is linear update=1 or nonlinear update=0. In the linear case, the Cholesky decomposition will be stored and computed just once, for the nonlinear case will be computed at each iteration.

    Attention
    This solver can be used only in serial applications.