Source code for viiapackage.results.results_a13

### ===================================================================================================================
###   A13 Nonlinear static analysis of flexbase model with strengthening measures
### ===================================================================================================================
# Copyright ©VIIA 2024

### ===================================================================================================================
###   1. Import modules
### ===================================================================================================================

# General imports
from __future__ import annotations
from typing import TYPE_CHECKING, Optional

# References for functions and classes in the rhdhv_fem package
from rhdhv_fem.pictures import View

# References for functions and classes in the viiaPackage
if TYPE_CHECKING:
    from viiapackage.viiaStatus import ViiaProject
from viiapackage.pictures import viia_create_result_pictures_nls
from viiapackage.results.results_load_model import viia_results_load_model


### ===================================================================================================================
###   2. Function to handle results for A13 analysis
### ===================================================================================================================

[docs]def viia_results_a13( project: ViiaProject, convergence_graphs: bool = True, geo_output: bool = True, result_pictures: bool = True, load_model: bool = True, view: Optional[View] = None): """ Combination of functions to be performed on output of A13 nonlinear static analysis with strengthening. Includes: - Graph of convergence. - Generating json-file with data for the geotechnical advisor. - Result pictures for A13 analysis. Input: - project (obj): Project object containing collections and of fem objects and project variables. - convergence_graphs (bool): Toggle to generate convergence graphs. Default value is True. - geo_output (bool): This allows the user to choose if the geo output needs to be created. This can be handy if the user wants to create results for multiple signals together. Then the user does not need to create the geo output each time. Default value is set to True. - result_pictures (bool): Toggle to generate result pictures. Default value is True. - load_model (bool): Select to reload the model. Default value is True, but when directly creating analysis and running, it needs to be switched off. - view (obj): View that should be used for the pictures. When None the default view will be used. Default is None. Output: - Result items of A13 analysis are created. """ # Checking for version number if project.version == 1: raise ValueError("ERROR: The A13 analysis is to be applied only on strengthened models.") # Check if model needs to be loaded if load_model: # Load the model viia_results_load_model(project=project, analysis_nr='A13') # Collect the analysis analysis = project.viia_get( collection='analyses', name='A13 - Niet-lineair statische analyse met flexbase met versterkingen') # Plot convergence graphs if desired if convergence_graphs: out_file = project.viia_get_file(path=project.current_analysis_folder, suffix='.out') if out_file: project.viia_convergence_graph(file=out_file, criterion='force', analysis=analysis, show=False) project.viia_convergence_graph(file=out_file, criterion='displacement', analysis=analysis, show=False) else: project.write_log("WARNING: No convergence graph is created because out-file could not be found.") # Collect files required for geo-output fos = project.shallow_foundation_present() piles = project.pile_foundation_present() if not piles and not fos: raise ValueError( "ERROR: No shallow or pile foundation present in the model, please check. Maybe you are using the model " "json not the analysis json.") output_5a = None output_5b = None # Collect required files for result handling if fos: output_5a = project.viia_get_file(path=project.current_analysis_folder, in_name='_OUTPUT_5A', suffix='.tb') if piles: output_5b = project.viia_get_file(path=project.current_analysis_folder, in_name='_OUTPUT_5B', suffix='.tb') # Create geo output if geo_output and any([output_5a, output_5b]): project.viia_create_geo_output_static_analysis(output_5a=output_5a, output_5b=output_5b, analysis=analysis) project.write_log("The geo-output json-file from analysis A13 is created in the analysis folder.") # Collect the pile reactions if project.pile_foundation_present(): output_5b = project.viia_get_file(path=project.current_analysis_folder, in_name='OUTPUT_5B', suffix='.tb') if output_5b: project.viia_collect_pile_reactions(pile_output_file=output_5b, analysis=analysis) else: project.write_log("WARNING: OUTPUT_5B not found. Pile force plots cannot be created.") # Result pictures for A13 if result_pictures: viia_create_result_pictures_nls(project=project, analysis=analysis, view=view)
### =================================================================================================================== ### 3. End of script ### ===================================================================================================================