Solvers¶
FEA Solve¶
- class
feastruct.solvers.feasolve.Solver(analysis, analysis_cases, solver_settings)[source]¶Parent class for a finite element solver.
Provides a number of methods suitable for most finite element analysis solver types.
Variables:
- analysis (
FiniteElementAnalysis) – Analysis object to solve- analysis_cases (list[
AnalysisCase]) – List of analysis cases to solve- solver_settings (
SolverSettings) – Settings to use in the solver- ndof (int) – Number of active degrees of freedom in the analysis
__init__(analysis, analysis_cases, solver_settings)[source]¶Inits the Solver class.
Parameters:
- analysis (
FiniteElementAnalysis) – Analysis object to solve- analysis_cases (list[
AnalysisCase]) – List of analysis cases to solve- solver_settings (
SolverSettings) – Settings to use in the solver
apply_bcs(K, f_ext, analysis_case)[source]¶Applies the boundary conditions to the global stiffness matrix and external force vector for the analysis case.
Parameters:
- K (
scipy.sparse.coo_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vector- analysis_case (
AnalysisCase) – Analysis caseReturns: The global stiffness matrix and external force vector, modified by the boundary conditions (K, f_ext)
Return type: tuple(
scipy.sparse.lil_matrix,numpy.ndarray)
assemble_fext(analysis_case)[source]¶Assembles the external force vector for analysis_case.
Parameters: analysis_case ( AnalysisCase) – Analysis case used to assemble the external force vectorReturns: The external force vector f_ext and the equivalent nodal loads vector f_eq Return type: tuple( numpy.ndarray,numpy.ndarray)
assemble_mass_matrix()[source]¶Assembles the global stiffness using the sparse COO format.
Returns: The global mass matrix Return type: scipy.sparse.coo_matrix
assemble_stiff_matrix(geometric=False, analysis_case=None)[source]¶Assembles the global stiffness using the sparse COO format.
Parameters:
- geometric (bool) – If set to True, also returns the global geometric stiffness matrix
- analysis_case (
AnalysisCase) – If geometric is set to True, the static analysis case from which to use to build the geometric stiffness matrixReturns: The global stiffness matrix and, if desired, the global geometric stiffness matrix (K, K_g)
Return type: tuple(
scipy.sparse.coo_matrix,scipy.sparse.coo_matrix)
assign_dofs()[source]¶Method to assign global degrees of freedom to the nodes in the analysis object.
calculate_reactions(K, u, f_eq, analysis_case)[source]¶Calculates the reactions using the stiffness matrix K and the displacement vector u and saves the reactions for the analysis case.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- u (
numpy.ndarray) – Displacement vector- f_eq (
numpy.ndarray) – Global equivalent nodal loads vector of size N- analysis_case (
AnalysisCase) – Analysis case
calculate_stresses(analysis_case)[source]¶Calculates and saves the element stresses for the analysis case.
Parameters: analysis_case ( AnalysisCase) – Analysis case
cgs_solver(K, f_ext)[source]¶Solves Ku=f_ext for u using the cgs method.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vectorReturns: Displacement vector u
Return type:
numpy.ndarrayRaises: Exception – If the cgs solver does not converge or if the preconditioner fails
direct_solver(K, f_ext)[source]¶Solves Ku=f_ext for u using the direct method.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vectorReturns: Displacement vector u
Return type:
numpy.ndarray
function_timer(text, function, *args)[source]¶Displays the message text and returns the time taken for a function, with arguments args, to execute. The value returned by the timed function is also returned.
Parameters:
- text (string) – Message to display
- function (function) – Function to time and execute
- args – Function arguments
Returns: Value returned from the function
remove_constrained_dofs(K, analysis_case)[source]¶Given an initial matrix K, returns a new matrix with the constrained degrees of freedom removed. The constrained degrees of freedom are those with supports defined in the freedom case used in the analysis case.
Parameters:
- K (
scipy.sparse.coo_matrix) – Stiffness matrix- analysis_case (
AnalysisCase) – Analysis caseReturns: A new stiffness matrix with the constrined dofs removed
Return type:
scipy.sparse.lil_matrix
save_buckling_results(w, v, analysis_case)[source]¶Saves the buckling results w and v to the degree of freedom objects for the analysis case.
Parameters:
- w (
numpy.ndarray) – Eigenvalues- v (
numpy.ndarray) – Eigenvectors- analysis_case (
AnalysisCase) – Analysis case
save_displacements(u, analysis_case)[source]¶Saves the displacements u to the degree of freedom objects for the analysis case.
Parameters:
- u (
numpy.ndarray) – Displacement vector- analysis_case (
AnalysisCase) – Analysis case
save_frequency_results(w, v, analysis_case)[source]¶Saves the frequency results w and v to the degree of freedom objects for the analysis case.
Parameters:
- w (
numpy.ndarray) – Eigenvalues- v (
numpy.ndarray) – Eigenvectors- analysis_case (
AnalysisCase) – Analysis case
solve_eigenvalue(A, M, eigen_settings)[source]¶Finds eigenvalues and eigenvectors for A * x[i] = w[i] * M * x[i].
Parameters:
- A (
scipy.sparse.coo_matrix) – A matrix- M (
scipy.sparse.coo_matrix) – M matrix- eigen_settings (
feastruct.solvers.feasolve.LinearBucklingSettingsorfeastruct.solvers.feasolve.NaturalFrequencySettings) – A settings object for use with the eigenvalue solverReturns: Eigenvalues and corresponding eigenvectors (w, v)
Return type: tuple(
numpy.ndarray,numpy.ndarray)Raises: Exception – If the eigenvalue solver does not converge
Linear Static Solver¶
- class
feastruct.solvers.linstatic.LinearStatic(analysis, analysis_cases, solver_settings=None)[source]¶Bases:
feastruct.solvers.feasolve.SolverClass for a linear static solver.
Variables:
- analysis (
FiniteElementAnalysis) – Analysis object to solve- analysis_cases (list[
AnalysisCase]) – List of analysis cases to solve- solver_settings (
SolverSettings) – Settings to use in the solver- ndof (int) – Number of degrees of freedom in the analysis
__init__(analysis, analysis_cases, solver_settings=None)[source]¶Inits the LinearStatic class.
Parameters:
- analysis (
FiniteElementAnalysis) – Analysis object to solve- analysis_cases (list[
AnalysisCase]) – List of analysis cases to solve- solver_settings (
SolverSettings) – Settings to use in the solver - if not supplied, the default settings are adopted
apply_bcs(K, f_ext, analysis_case)¶Applies the boundary conditions to the global stiffness matrix and external force vector for the analysis case.
Parameters:
- K (
scipy.sparse.coo_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vector- analysis_case (
AnalysisCase) – Analysis caseReturns: The global stiffness matrix and external force vector, modified by the boundary conditions (K, f_ext)
Return type: tuple(
scipy.sparse.lil_matrix,numpy.ndarray)
assemble_fext(analysis_case)¶Assembles the external force vector for analysis_case.
Parameters: analysis_case ( AnalysisCase) – Analysis case used to assemble the external force vectorReturns: The external force vector f_ext and the equivalent nodal loads vector f_eq Return type: tuple( numpy.ndarray,numpy.ndarray)
assemble_mass_matrix()¶Assembles the global stiffness using the sparse COO format.
Returns: The global mass matrix Return type: scipy.sparse.coo_matrix
assemble_stiff_matrix(geometric=False, analysis_case=None)¶Assembles the global stiffness using the sparse COO format.
Parameters:
- geometric (bool) – If set to True, also returns the global geometric stiffness matrix
- analysis_case (
AnalysisCase) – If geometric is set to True, the static analysis case from which to use to build the geometric stiffness matrixReturns: The global stiffness matrix and, if desired, the global geometric stiffness matrix (K, K_g)
Return type: tuple(
scipy.sparse.coo_matrix,scipy.sparse.coo_matrix)
assign_dofs()¶Method to assign global degrees of freedom to the nodes in the analysis object.
calculate_reactions(K, u, f_eq, analysis_case)¶Calculates the reactions using the stiffness matrix K and the displacement vector u and saves the reactions for the analysis case.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- u (
numpy.ndarray) – Displacement vector- f_eq (
numpy.ndarray) – Global equivalent nodal loads vector of size N- analysis_case (
AnalysisCase) – Analysis case
calculate_stresses(analysis_case)¶Calculates and saves the element stresses for the analysis case.
Parameters: analysis_case ( AnalysisCase) – Analysis case
cgs_solver(K, f_ext)¶Solves Ku=f_ext for u using the cgs method.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vectorReturns: Displacement vector u
Return type:
numpy.ndarrayRaises: Exception – If the cgs solver does not converge or if the preconditioner fails
direct_solver(K, f_ext)¶Solves Ku=f_ext for u using the direct method.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vectorReturns: Displacement vector u
Return type:
numpy.ndarray
function_timer(text, function, *args)¶Displays the message text and returns the time taken for a function, with arguments args, to execute. The value returned by the timed function is also returned.
Parameters:
- text (string) – Message to display
- function (function) – Function to time and execute
- args – Function arguments
Returns: Value returned from the function
remove_constrained_dofs(K, analysis_case)¶Given an initial matrix K, returns a new matrix with the constrained degrees of freedom removed. The constrained degrees of freedom are those with supports defined in the freedom case used in the analysis case.
Parameters:
- K (
scipy.sparse.coo_matrix) – Stiffness matrix- analysis_case (
AnalysisCase) – Analysis caseReturns: A new stiffness matrix with the constrined dofs removed
Return type:
scipy.sparse.lil_matrix
save_buckling_results(w, v, analysis_case)¶Saves the buckling results w and v to the degree of freedom objects for the analysis case.
Parameters:
- w (
numpy.ndarray) – Eigenvalues- v (
numpy.ndarray) – Eigenvectors- analysis_case (
AnalysisCase) – Analysis case
save_displacements(u, analysis_case)¶Saves the displacements u to the degree of freedom objects for the analysis case.
Parameters:
- u (
numpy.ndarray) – Displacement vector- analysis_case (
AnalysisCase) – Analysis case
save_frequency_results(w, v, analysis_case)¶Saves the frequency results w and v to the degree of freedom objects for the analysis case.
Parameters:
- w (
numpy.ndarray) – Eigenvalues- v (
numpy.ndarray) – Eigenvectors- analysis_case (
AnalysisCase) – Analysis case
solve_eigenvalue(A, M, eigen_settings)¶Finds eigenvalues and eigenvectors for A * x[i] = w[i] * M * x[i].
Parameters:
- A (
scipy.sparse.coo_matrix) – A matrix- M (
scipy.sparse.coo_matrix) – M matrix- eigen_settings (
feastruct.solvers.feasolve.LinearBucklingSettingsorfeastruct.solvers.feasolve.NaturalFrequencySettings) – A settings object for use with the eigenvalue solverReturns: Eigenvalues and corresponding eigenvectors (w, v)
Return type: tuple(
numpy.ndarray,numpy.ndarray)Raises: Exception – If the eigenvalue solver does not converge
Linear Buckling Solver¶
- class
feastruct.solvers.linbuckling.LinearBuckling(analysis, analysis_cases, solver_settings=None)[source]¶Bases:
feastruct.solvers.feasolve.SolverClass for a linear buckling solver.
Variables:
- analysis (
FiniteElementAnalysis) – Analysis object to solve- analysis_cases (list[
AnalysisCase]) – List of analysis cases to solve- solver_settings (
SolverSettings) – Settings to use in the solver- ndof (int) – Number of degrees of freedom in the analysis
__init__(analysis, analysis_cases, solver_settings=None)[source]¶Inits the LinearBuckling class.
Parameters:
- analysis (
FiniteElementAnalysis) – Analysis object to solve- analysis_cases (list[
AnalysisCase]) – List of analysis cases to solve- solver_settings (
SolverSettings) – Settings to use in the solver - if not supplied, the default settings are adopted
apply_bcs(K, f_ext, analysis_case)¶Applies the boundary conditions to the global stiffness matrix and external force vector for the analysis case.
Parameters:
- K (
scipy.sparse.coo_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vector- analysis_case (
AnalysisCase) – Analysis caseReturns: The global stiffness matrix and external force vector, modified by the boundary conditions (K, f_ext)
Return type: tuple(
scipy.sparse.lil_matrix,numpy.ndarray)
assemble_fext(analysis_case)¶Assembles the external force vector for analysis_case.
Parameters: analysis_case ( AnalysisCase) – Analysis case used to assemble the external force vectorReturns: The external force vector f_ext and the equivalent nodal loads vector f_eq Return type: tuple( numpy.ndarray,numpy.ndarray)
assemble_mass_matrix()¶Assembles the global stiffness using the sparse COO format.
Returns: The global mass matrix Return type: scipy.sparse.coo_matrix
assemble_stiff_matrix(geometric=False, analysis_case=None)¶Assembles the global stiffness using the sparse COO format.
Parameters:
- geometric (bool) – If set to True, also returns the global geometric stiffness matrix
- analysis_case (
AnalysisCase) – If geometric is set to True, the static analysis case from which to use to build the geometric stiffness matrixReturns: The global stiffness matrix and, if desired, the global geometric stiffness matrix (K, K_g)
Return type: tuple(
scipy.sparse.coo_matrix,scipy.sparse.coo_matrix)
assign_dofs()¶Method to assign global degrees of freedom to the nodes in the analysis object.
calculate_reactions(K, u, f_eq, analysis_case)¶Calculates the reactions using the stiffness matrix K and the displacement vector u and saves the reactions for the analysis case.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- u (
numpy.ndarray) – Displacement vector- f_eq (
numpy.ndarray) – Global equivalent nodal loads vector of size N- analysis_case (
AnalysisCase) – Analysis case
calculate_stresses(analysis_case)¶Calculates and saves the element stresses for the analysis case.
Parameters: analysis_case ( AnalysisCase) – Analysis case
cgs_solver(K, f_ext)¶Solves Ku=f_ext for u using the cgs method.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vectorReturns: Displacement vector u
Return type:
numpy.ndarrayRaises: Exception – If the cgs solver does not converge or if the preconditioner fails
direct_solver(K, f_ext)¶Solves Ku=f_ext for u using the direct method.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vectorReturns: Displacement vector u
Return type:
numpy.ndarray
function_timer(text, function, *args)¶Displays the message text and returns the time taken for a function, with arguments args, to execute. The value returned by the timed function is also returned.
Parameters:
- text (string) – Message to display
- function (function) – Function to time and execute
- args – Function arguments
Returns: Value returned from the function
remove_constrained_dofs(K, analysis_case)¶Given an initial matrix K, returns a new matrix with the constrained degrees of freedom removed. The constrained degrees of freedom are those with supports defined in the freedom case used in the analysis case.
Parameters:
- K (
scipy.sparse.coo_matrix) – Stiffness matrix- analysis_case (
AnalysisCase) – Analysis caseReturns: A new stiffness matrix with the constrined dofs removed
Return type:
scipy.sparse.lil_matrix
save_buckling_results(w, v, analysis_case)¶Saves the buckling results w and v to the degree of freedom objects for the analysis case.
Parameters:
- w (
numpy.ndarray) – Eigenvalues- v (
numpy.ndarray) – Eigenvectors- analysis_case (
AnalysisCase) – Analysis case
save_displacements(u, analysis_case)¶Saves the displacements u to the degree of freedom objects for the analysis case.
Parameters:
- u (
numpy.ndarray) – Displacement vector- analysis_case (
AnalysisCase) – Analysis case
save_frequency_results(w, v, analysis_case)¶Saves the frequency results w and v to the degree of freedom objects for the analysis case.
Parameters:
- w (
numpy.ndarray) – Eigenvalues- v (
numpy.ndarray) – Eigenvectors- analysis_case (
AnalysisCase) – Analysis case
solve_eigenvalue(A, M, eigen_settings)¶Finds eigenvalues and eigenvectors for A * x[i] = w[i] * M * x[i].
Parameters:
- A (
scipy.sparse.coo_matrix) – A matrix- M (
scipy.sparse.coo_matrix) – M matrix- eigen_settings (
feastruct.solvers.feasolve.LinearBucklingSettingsorfeastruct.solvers.feasolve.NaturalFrequencySettings) – A settings object for use with the eigenvalue solverReturns: Eigenvalues and corresponding eigenvectors (w, v)
Return type: tuple(
numpy.ndarray,numpy.ndarray)Raises: Exception – If the eigenvalue solver does not converge
Natural Frequency Solver¶
- class
feastruct.solvers.naturalfrequency.NaturalFrequency(analysis, analysis_cases, solver_settings=None)[source]¶Bases:
feastruct.solvers.feasolve.SolverClass for a natural frequency solver.
Variables:
- analysis (
FiniteElementAnalysis) – Analysis object to solve- analysis_cases (list[
AnalysisCase]) – List of analysis cases to solve- solver_settings (
SolverSettings) – Settings to use in the solver- ndof (int) – Number of degrees of freedom in the analysis
__init__(analysis, analysis_cases, solver_settings=None)[source]¶Inits the NaturalFrequency class.
Parameters:
- analysis (
FiniteElementAnalysis) – Analysis object to solve- analysis_cases (list[
AnalysisCase]) – List of analysis cases to solve- solver_settings (
SolverSettings) – Settings to use in the solver - if not supplied, the default settings are adopted
apply_bcs(K, f_ext, analysis_case)¶Applies the boundary conditions to the global stiffness matrix and external force vector for the analysis case.
Parameters:
- K (
scipy.sparse.coo_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vector- analysis_case (
AnalysisCase) – Analysis caseReturns: The global stiffness matrix and external force vector, modified by the boundary conditions (K, f_ext)
Return type: tuple(
scipy.sparse.lil_matrix,numpy.ndarray)
assemble_fext(analysis_case)¶Assembles the external force vector for analysis_case.
Parameters: analysis_case ( AnalysisCase) – Analysis case used to assemble the external force vectorReturns: The external force vector f_ext and the equivalent nodal loads vector f_eq Return type: tuple( numpy.ndarray,numpy.ndarray)
assemble_mass_matrix()¶Assembles the global stiffness using the sparse COO format.
Returns: The global mass matrix Return type: scipy.sparse.coo_matrix
assemble_stiff_matrix(geometric=False, analysis_case=None)¶Assembles the global stiffness using the sparse COO format.
Parameters:
- geometric (bool) – If set to True, also returns the global geometric stiffness matrix
- analysis_case (
AnalysisCase) – If geometric is set to True, the static analysis case from which to use to build the geometric stiffness matrixReturns: The global stiffness matrix and, if desired, the global geometric stiffness matrix (K, K_g)
Return type: tuple(
scipy.sparse.coo_matrix,scipy.sparse.coo_matrix)
assign_dofs()¶Method to assign global degrees of freedom to the nodes in the analysis object.
calculate_reactions(K, u, f_eq, analysis_case)¶Calculates the reactions using the stiffness matrix K and the displacement vector u and saves the reactions for the analysis case.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- u (
numpy.ndarray) – Displacement vector- f_eq (
numpy.ndarray) – Global equivalent nodal loads vector of size N- analysis_case (
AnalysisCase) – Analysis case
calculate_stresses(analysis_case)¶Calculates and saves the element stresses for the analysis case.
Parameters: analysis_case ( AnalysisCase) – Analysis case
cgs_solver(K, f_ext)¶Solves Ku=f_ext for u using the cgs method.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vectorReturns: Displacement vector u
Return type:
numpy.ndarrayRaises: Exception – If the cgs solver does not converge or if the preconditioner fails
direct_solver(K, f_ext)¶Solves Ku=f_ext for u using the direct method.
Parameters:
- K (
scipy.sparse.lil_matrix) – Global stiffness matrix- f_ext (
numpy.ndarray) – External force vectorReturns: Displacement vector u
Return type:
numpy.ndarray
function_timer(text, function, *args)¶Displays the message text and returns the time taken for a function, with arguments args, to execute. The value returned by the timed function is also returned.
Parameters:
- text (string) – Message to display
- function (function) – Function to time and execute
- args – Function arguments
Returns: Value returned from the function
remove_constrained_dofs(K, analysis_case)¶Given an initial matrix K, returns a new matrix with the constrained degrees of freedom removed. The constrained degrees of freedom are those with supports defined in the freedom case used in the analysis case.
Parameters:
- K (
scipy.sparse.coo_matrix) – Stiffness matrix- analysis_case (
AnalysisCase) – Analysis caseReturns: A new stiffness matrix with the constrined dofs removed
Return type:
scipy.sparse.lil_matrix
save_buckling_results(w, v, analysis_case)¶Saves the buckling results w and v to the degree of freedom objects for the analysis case.
Parameters:
- w (
numpy.ndarray) – Eigenvalues- v (
numpy.ndarray) – Eigenvectors- analysis_case (
AnalysisCase) – Analysis case
save_displacements(u, analysis_case)¶Saves the displacements u to the degree of freedom objects for the analysis case.
Parameters:
- u (
numpy.ndarray) – Displacement vector- analysis_case (
AnalysisCase) – Analysis case
save_frequency_results(w, v, analysis_case)¶Saves the frequency results w and v to the degree of freedom objects for the analysis case.
Parameters:
- w (
numpy.ndarray) – Eigenvalues- v (
numpy.ndarray) – Eigenvectors- analysis_case (
AnalysisCase) – Analysis case
solve()[source]¶Executes the natural frequency finite element solver and saves the relevant results.
solve_eigenvalue(A, M, eigen_settings)¶Finds eigenvalues and eigenvectors for A * x[i] = w[i] * M * x[i].
Parameters:
- A (
scipy.sparse.coo_matrix) – A matrix- M (
scipy.sparse.coo_matrix) – M matrix- eigen_settings (
feastruct.solvers.feasolve.LinearBucklingSettingsorfeastruct.solvers.feasolve.NaturalFrequencySettings) – A settings object for use with the eigenvalue solverReturns: Eigenvalues and corresponding eigenvectors (w, v)
Return type: tuple(
numpy.ndarray,numpy.ndarray)Raises: Exception – If the eigenvalue solver does not converge
Solver Settings¶
- class
feastruct.solvers.feasolve.SolverSettings[source]¶Class for settings to be used in a finite element analysis.
Variables:
- linear_static (
feastruct.solvers.feasolve.LinearStaticSettings) – Linear static settings- linear_buckling (
feastruct.solvers.feasolve.LinearBucklingSettings) – Linear buckling settings- natural_frequency (
feastruct.solvers.feasolve.NaturalFrequencySettings) – Natural frequency settings
Linear Static Settings¶
-
class
feastruct.solvers.feasolve.LinearStaticSettings(time_info=False, solver_type='direct', cgs_tol=1e-05, cgs_maxiter=None, cgs_precond=True)[source]¶ Bases:
objectClass for settings to be used in a linear static analysis.
Variables: - time_info (bool) – If set to True, a detailed description of the computation and the time cost is printed to the terminal
- solver_type (string) – Solver type used to solve Ku = f - ‘direct’ or ‘cgs’
- cgs_tol (float) – Tolerance to achieve for the cgs solver
- cgs_maxiter (int) – Maximum number of iterations for the cgs solver
- cgs_precond (bool) – If set to True, calculates a preconditioner for K using an ILU decomposition
-
__init__(time_info=False, solver_type='direct', cgs_tol=1e-05, cgs_maxiter=None, cgs_precond=True)[source]¶ Inits the LinearStaticSettings class.
Parameters: - time_info (bool) – If set to True, a detailed description of the computation and the time cost is printed to the terminal
- solver_type (string) – Solver type used to solve Ku = f - ‘direct’ or ‘cgs’
- cgs_tol (float) – Tolerance to achieve for the cgs solver
- cgs_maxiter (int) – Maximum number of iterations for the cgs solver
- cgs_precond (bool) – If set to True, calculates a preconditioner for K using an ILU decomposition
Linear Buckling Settings¶
-
class
feastruct.solvers.feasolve.LinearBucklingSettings(time_info=False, num_modes=4, shift=0, maxiter=None, tol=1e-09)[source]¶ Bases:
objectClass for settings to be used in a linear buckling analysis.
-
__init__(time_info=False, num_modes=4, shift=0, maxiter=None, tol=1e-09)[source]¶ Inits the LinearBucklingSettings class.
Parameters: - time_info (bool) – If set to True, a detailed description of the computation and the time cost is printed to the terminal
- num_modes (int) – Number of modes to compute
- shift (float) – Finds eigenvalues near shift using the shift-invert mode
- maxiter (int) – Maximum number of iterations allowed
- tol (float) – Relative accuracy for eigenvalues (stopping criterion)
-
Natural Frequency Settings¶
-
class
feastruct.solvers.feasolve.NaturalFrequencySettings(time_info=False, num_modes=4, shift=0, maxiter=None, tol=1e-09)[source]¶ Bases:
objectClass for settings to be used in a natural frequency analysis.
-
__init__(time_info=False, num_modes=4, shift=0, maxiter=None, tol=1e-09)[source]¶ Inits the NaturalFrequencySettings class.
Parameters: - time_info (bool) – If set to True, a detailed description of the computation and the time cost is printed to the terminal
- num_modes (int) – Number of modes to compute
- shift (float) – Finds eigenvalues near shift using the shift-invert mode
- maxiter (int) – Maximum number of iterations allowed
- tol (float) – Relative accuracy for eigenvalues (stopping criterion)
-