Module viiaAnalysis

This module contains the functions to create and run analyses for VIIA workflow.

Create analyses

viiapackage.viiaAnalysis.viia_analysis(project: ViiaProject, analysis_nr: str, run: bool = False, signals: Optional[Union[List[str], str]] = None, directions: Optional[Union[List[str], str]] = None, nmodes: Optional[int] = None, ac_pivots: Optional[str] = None, combox: str = 'server', iteration_method_requested: str = 'newton-raphson', output_1c: Optional[bool] = False, nr_time_steps: Optional[int] = None, suppress_analysis: Optional[bool] = False, mod_param: Optional[List[List[Union[str, List]]]] = None, save_mode_pictures: Optional[int] = 5, load_datfile: bool = True, geo_output: bool = True)[source]

This function will create the analysis required, and if selected runs the analysis directly when running in DIANA. In that case the default output items are handled and created in the analysis folder.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • analysis_nr (str): Current analysis referencing the numbers in the viiaStatus. For example ‘A1’.

  • run (bool): Select if the analysis should be performed directly, also result handling will be performed. The default value is set to ‘False’, indicating that the analysis and result handling is not performed while running the mainscript.

  • signals (list of str): A list of the signals can be provided for the signals of which the analysis should be prepared. If the default signals need to be applied select ‘Default’. The default value of the argument is None, indicating no signals to be applied. Apply random selection of signals for example: [‘S1’, ‘S6’], apply VIIA naming convention for signals (in viiaStatus).

  • directions (list of str): A list of the directions can be provided for the directions of which the analysis should be prepared. If the default directions need to be applied select ‘Default’. The default value of the argument is None, indicating no directions to be applied. Apply random selection of directions for example: [‘X_neg’, ‘Y_neg’], apply VIIA naming convention for directions (in viiaStatus).

  • nmodes (int): For Eigen value analysis (analysis type ‘EIGEN’, analysis_nr ‘A3’ or ‘A7’) - nmodes refer to the number of mode shapes to get in your analysis. For Modal Response Spectrum analysis (analysis type ‘MRS’, analysis_nr ‘A5’) - nmodes refer to the maximum of x- and y- direction mode shape at which cumulative modal participation factor reaches 70%. If eigen value analysis (A3 or A7) results are present in the workfolder then script will search for nmodes automatically (if 70% value is not reached then a warning is printed instead). If eigenvalue analysis are not present in the workfolder then nmodes should be specified manually.

  • ac_pivots (str): Name of method of obtaining arc-length control pivots or a sequence of node numbers in string format.

  • combox (str): Set the location where to run the dcf if the calculation is not performed directly. The dcf is by default prepared for running on the server (adding the initialisation of the filos file and input and for flexbase will add the user subroutine dll location).

  • iteration_method_requested (str): The iteration method selected for the time-steps execute, the default value is ‘newton-raphson’. Other options are ‘secant’ and ‘linear-stiffness’.

  • output_1c (bool): Default False. If true the 1c output block will be returned. Only applicable for NLTH analysis.

  • nr_time_steps (int): Overrule the number of time-steps to be used in the NLTH analysis. Default value None, time-steps are determined based on the length of the signal. Only applicable for NLTH analysis.

  • suppress_analysis (bool): If set to True, this will stop the creation of analysis and dcf files and function will return an analysis that can be adjusted. After adjustment, it will be possible to create analysis and write dcf files.

  • mod_param (List[List[Union(str, List)]]): a list of parameters which will be used to modify analysis object.

  • save_mode_pictures (int): This refers to number of modes, for which the result items displacement DispXYZ and rotation RotXYZ is plotted for the entire structure. Default value is set to 5 based on the template for Appendix C2.

  • load_datfile (bool): Select if the dat-file for DIANA should be loaded. This is not required if it was already loaded previously and no changes to the model have been made in the meantime. Default value is True.

  • geo_output (bool): This allows the user to choose if the geo output needs to be created (only when the analysis and result handling is selected to be executed). Default value is True.

Output:
  • The required analysis is prepared in a specific folder.

  • If selected the analysis is directly performed and results are handled.

Functionality for analyses

viiapackage.viiaAnalysis.viia_create_datfile(project: ViiaProject, mesh: bool = True, load: bool = True) Optional[Path][source]

This function creates a dat-file in the current analysis folder, or if this is not specified in the working directory. It will read the dat-file and collect the mesh information from it to update the model in py-memory. If software is not set to DIANA, nothing will be done. In DIANA the mesh will be regenerated when this function is applied, prior to generating the dat-file.

Warning

The model should be meshed in DIANA.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • mesh (bool): Select if the model should be meshed first. Default set to ‘True’.

  • load (bool): Select if the dat-file for DIANA should be loaded. This is not required if it was already loaded previously and no changes to the model have been made in the meantime. Default value is True.

Output:
  • A dat-file is written by DIANA.

  • The path of the dat-file is returned.

viiapackage.viiaAnalysis.viia_modify_analysis(project: ViiaProject, mod_param: List[List[str]], analysis: Analysis, run: bool = False, combox: str = 'Server', create_files: bool = True, save_mode_pictures: Optional[int] = None)[source]

This function will modify the analysis object, create analysis object in DIANA and save model and Analysis files (dat, dpf and dcf-files) in the analysis sub-folder.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • mod_param (list(list)): parameters containing arguments for modifying the analysis object

  • analysis (obj): Object reference of ‘Analysis’ class. only work with Analysis object of A10 and A12 analysis.

  • run_analysis (bool): Bool to define whether to run analysis or not. ‘False’ by default.

  • combox (str): string that define whether analysis will be run. set to ‘Server’ by default.

  • create_files (bool): Bool to define if dcf, json, dat, and dpf files should be created. By default, set to True. If set to False, then new files will not be created.

  • save_mode_pictures (int): This refers to number of modes, for which the result items displacement DispXYZ and rotation RotXYZ is plotted for the entire structure. Useful for A3/A7 analysis. Default in this situation is set to None.

Output:
  • The analysis object is modified, is returned and all the relevant files are created in the project workfolder.

Examples:
analysis_A10 = project.viia_analysis(analysis_nr='A10', run=False, suppress_analysis=True)

project.viia_modify_analysis(analysis=analysis_A10, mod_param=[
    ['Structural nonlinear 4', 'Execute block E', 'equilibrium iteration','maximum number of iterations',
     100], ['Structural nonlinear 6', 'OUTPUT_STATIC-NL', 'user selection','nodes', [28,173,990,1783]]])
viiapackage.viiaAnalysis.viia_run_diana_command_box(analysis_folder: Union[str, Path], dat_file_name: Union[str, Path] = None, dcf_file_name: str = None, filos_file_name: Optional[str] = None, out_file_name: Optional[str] = None, version: str = '10.9')[source]

Runs an analysis in the command box. If not given the dat-file or dcf-file name, it will try to find them in the analysis folder.

Input:
  • analysis_folder (path): Folder where the analysis should be executed.

  • dat_file_name (path): Name of the dat file.

  • dcf_file_name (path): Name of the dcf file.

  • filos_file_name (str): Name of the filos file. Default value is None.

  • out_file_name (str): Name of the out file. Default value is None.

  • version (str): Version of DIANA, default value is version 10.9.

Output:
  • Analysis is executed in the DIANA Command Box.

viiapackage.viiaAnalysis.viia_update_analyses_DIANA_to_ABAQUS(project: ViiaProject)[source]

This function updates the DIANA analysis objects to ABAQUS applicable ones.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • All present analyses in the project are updated or replaced with analysis specified for explicit analysis in ABAQUS, following VIIA workflow.

Helper-functions for analyses

viiapackage.analyses.viia_analysis_folder.viia_analysis_folder(project: ViiaProject, analysis_nr: str, signal: Optional[str] = None, direction: Optional[str] = None, loadtype: Optional[str] = None, software: Optional[str] = 'diana', time_reference: Optional[str] = None) Path[source]

This function creates the new folder for the current analysis. It creates it in the analysis sub-folder and then a sub-folder with the timestamp and version number. If signals or directions are required, these are sub-folders of the sub-folder with the timestamp and version number.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • analysis_nr (str): Current analysis referencing the numbers in the viiaStatus. For example ‘A1’.

  • signal (str): If a signal name is provided, the folder will be created for this signal inside the analysis folder. The signal number references the VIIA naming convention in viiaStatus, for example ‘S1’.

  • direction (str): If a direction name is provided, the folder will be created for this direction inside the analysis folder. The direction name references the VIIA naming convention in viiaStatus, for example ‘X_pos’.

  • loadtype (str): Type of loading identified as string: e.g. ‘modal’ or ‘uni’.

  • software (str): The software for which the analysis folder should be created. Specified as ‘diana’ by default.

  • time_reference (str): Contains the time stamp that will be used in the name of the sub-folder. If no time-stamp is provided, it will be calculated.

Output:
  • The sub-folder is created, including the parent folders, if not existing.

  • The folder is set as current analysis folder and returned.

  • The creation process is logged in the log-file.

For example:

viia_analysis_folder(project=project, analysis_nr='A1')
viia_analysis_folder(
    project=project, analysis_nr='A11', direction='X_neg', loadtype='modal', time_reference=time_reference)
viia_analysis_folder(project=project, analysis_nr='A12', signal='S1', time_reference=time_reference)
viiapackage.analyses.viia_create_analysis.viia_create_analysis(project: ViiaProject, analysis_nr: str, direction: Optional[str] = None, nmodes: Optional[int] = None, loadnr: Optional[int] = None, ac_pivots: Optional[str] = None, number_eigenmodes: int = 10, modal_pushover_flag: bool = True, iteration_method_requested: str = 'secant', output_1c: bool = False, nr_time_steps: Optional[int] = None) Analysis[source]

Function to add a default analysis to the model in DIANA, see viiapackage documentation howto_dcf_settings. The name of the analysis that is created depends on the state of the model. This can be fixed base, flex base, soilblock or soilcolumn.

Note

Always check your dcf-file prior to calculation.

Note

To increase speed of the calculation, check the requested output (writing output takes time).

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • analysis_nr (str): Current analysis referencing the numbers for different analyses. For example ‘A1’.

  • direction (str): String of the direction can be provided for the direction of which the analysis should be created. The default value of the argument is None, indicating no directions to be applied.

  • nmodes (int): Number of eigenmodes to take into account in the analysis. This value is only used in eigenvalue analysis.

  • loadnr (int): The associated ID (as integer) of the LoadCombination instance with the name corresponding to the NLPO load-cases, if available.

  • ac_pivots (str): Name of method of obtaining arc length control pivots or a sequence of node numbers in string format.

  • number_eigenmodes (int): Only used when the modal pushover analysis is set up. This is the number of modes set for the eigenvalue analysis executed before the modal pushover analysis, the default value is 10. When the dominate mode is after the first 10 modes, this should be adjusted accordingly.

  • modal_pushover_flag (bool): If this argument is set to True, the eigenvalue analysis will executed before modal NLPO analysis, otherwise eigenvalue analysis is not set up for uniform NLPO analysis. The default value is True.

  • iteration_method_requested (str): The iteration method selected for the time-steps execute, the default value is ‘secant’. Other options are ‘newton-raphson’, ‘linear-stiffness’ and ‘constant stiffness’.

  • output_1c (bool): Default False. If true the 1c output block will be returned.

  • nr_time_steps (int): Overrule the number of time-steps to be used in the NLTH analysis. Default value None, time-steps are determined based on the length of the signal.

Output:
  • Requested analysis-type is created in DIANA.

viiapackage.analyses.viia_create_analysis_files.viia_create_analysis_files(project: ViiaProject, analysis: Analysis, combox_location: Optional[str] = None, signal: Optional[str] = None, abaqus_inp_location: Union[Path, str] = None) List[Path][source]

Function to create and save analysis files for the analysis in the analysis sub-folder, following the standard workflow in VIIA. For all software the log-file and json-file of the model are stored in the analysis folder. In DIANA the dat-file, dcf-file and dpf-file are added. When performing in ABAQUS the cae-file, jnl-file, inp-file, postprocessing, subroutines, abaqus_v6 env-file, envelope_results json-file, materials include-file and postprocessing batch files. In case of ABAQUS for analyses with signals, all the seven signals are prepared.

Note

When this function is used for ABAQUS, user needs to call this function at the end of the mainscript separately (i.e., after the project.viia_create_model())

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • analysis (obj): Object reference of the analysis for which the files are created / collected.

  • combox_location (str): Optional input to prepare the dcf-file for running analysis. For example the location of the user supplied subroutines, if any. Default value is None, dcf-file is not updated. This input is only used for DIANA, input is ignored when software ABAQUS is selected.

  • signal (str): The signal for which the analysis files need to be created. Example format is ‘S1’. This is used for A4, A12 and A15 analysis. Default value is None.

  • abaqus_inp_location (Path or str): Location of the ABAQUS inp-file. By default, the inp-file is retrieved from the workfolder, based on VIIA naming convention. This input is only used for ABAQUS, input is ignored when software DIANA is selected.

Output:
  • Returns list of all created files in the ‘current analysis folder’, which files is software specific.

viiapackage.analyses.viia_prepare_analysis.viia_prepare_analysis(project: ViiaProject, location: str = 'viiaPackage', threads: int = 4) Optional[Path][source]

This function prepares the latest created dcf-file for running a calculation in a command-box. It prepares the dcf-file by adding the information on initialising the filos file. It also adds the reference to the user supplied subroutine file(s), depending on the location where the calculation will be running.

For fixed base analysis it is not needed to add the user supplied subroutine, input for the location is then ignored.

Note

This function is specific for DIANA.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • location (str): Location where the calculation will be running. Default value is ‘viiaPackage’. For running the calculation, DIANA needs to find the user supplied subroutines for shallow and pile foundations, if applicable. Allowed arguments are ‘viiaPackage’, ‘server’ or the directory location containing the subroutine(s) as string. folders seperated with double backslashes and double quotation marks in string (‘“E:VIIA"’). If the support-type is fixed base, this input is ignored.

  • threads (int): Number of threads that should be used for the calculation.

Output:
  • The latest dcf-file is prepared for calculating in command-box for DIANA.

  • The file reference of the (updated) dcf-file is returned at path.

viiapackage.analyses.viia_run_analysis.viia_run_analysis(project: ViiaProject, analysis: Analysis) Tuple[Path, float][source]

This function performs the analysis in the DIANA GUI in the VIIA workflow. It will collect the generated files by DIANA and moves them to the current analysis folder.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • analysis (obj): Object reference of the analysis for which the files are created / collected.

Output:
  • Returns tuple with the out-file generated in DIANA (as path) and the runtime of the analysis in DIANA GUI (as float).

  • The files created conform VIIA convention are moved to the current analysis folder. These include the out-file and the result files.

viiapackage.analyses.analysis_a1.viia_create_analysis_a1(project: ViiaProject) Analysis[source]

This function creates the A1 analysis, complete existing model linear static analysis. This analysis is available for DIANA and ABAQUS software.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • Creates and returns the A1 with all settings for VIIA.

viiapackage.analyses.analysis_a1a.viia_create_analysis_a1a(project: ViiaProject) Analysis[source]

This function creates the A1a analysis, complete existing model BSC linear static analysis and build the geo output for the corresponding foundation. This analysis is available for DIANA software.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • Creates and returns the A1a with all settings for VIIA.

viiapackage.analyses.analysis_a2.viia_create_analysis_a2(project: ViiaProject) Analysis[source]

This function creates the A2 analysis, complete existing model linear static analysis. This analysis is available for DIANA and ABAQUS software. It applies displacements and checks the model.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • Creates and returns the A2 with all settings for VIIA.

viiapackage.analyses.analysis_a3.viia_create_analysis_a3(project: ViiaProject, modes: int = 1000) Analysis[source]

Function to create the A3 eigenvalue analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • modes (int): Number of eigenmodes to take into account in the analysis. This value is only used in eigenvalue analysis (analysis type ‘EIGEN’). Default value 1000.

Output:
  • Creates and returns the A3 with all settings for VIIA.

viiapackage.analyses.analysis_a4.viia_create_analysis_a4(project: ViiaProject, iteration_method_requested: str = 'secant', output_1c: bool = False, nr_time_steps: Optional[int] = None) Analysis[source]

This function creates the A4 analysis, complete existing model NLTH with linear material properties and without connections and soil-structure interaction. It depends on the software set, which will switch between explicit (ABAQUS) and implicit (DIANA) analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • iteration_method_requested (str): The iteration method selected for the time-steps execute, the default value is ‘secant’. Other options are ‘newton-raphson’, ‘linear-stiffness’ and ‘constant stiffness’.

  • output_1c (bool): Select to create output-block 1C for additional signal checking. Default value is False.

  • nr_time_steps (int): Overrule the number of time-steps to be used in the NLTH analysis. Default value None, time-steps are determined based on the length of the signal.

Output:
  • Creates and returns the A4 analysis object for the requested software with all settings for VIIA.

viiapackage.analyses.analysis_a5.viia_create_analysis_a5(project: ViiaProject, modes: int) Analysis[source]

This function creates the A5 analysis, complete existing model modal response analysis. This analysis is only available for DIANA software.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • modes (int): Number of modes which should be considered in MRS analysis.

Output:
  • Creates and returns the A5 with all settings for VIIA.

viiapackage.analyses.analysis_a6.viia_create_analysis_a6(project: ViiaProject, direction: Optional[str] = None, loadnr: Optional[int] = None, ac_pivots: Optional[str] = None, number_eigenmodes: int = 10, modal_pushover_flag: bool = True) Analysis[source]

This function creates the A6 analysis, complete existing model with fixed base for non-linear push-over analysis. This analysis is only available for DIANA software.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • direction (str): The directions of which the analysis should be prepared. The default value of the argument is None, indicating no directions to be applied. Apply random selection of directions for example: ‘X_neg’, ‘Y_neg’, apply VIIA naming convention for directions.

  • loadnr (int): The associated ID (as integer) of the LoadCombination instance with the name corresponding to the NLPO load-cases, if available.

  • ac_pivots (str): Name of method of obtaining arc length control pivots or a sequence of node numbers in string format.

  • number_eigenmodes (int): Only used when the modal pushover analysis is set up. This is the number of modes set for the eigenvalue analysis executed before the modal pushover analysis, the default value is 10. When the dominate mode is after the first 10 modes, this should be adjusted accordingly.

  • modal_pushover_flag (bool): If this argument is set to True, the eigenvalue analysis will executed before modal NLPO analysis, otherwise eigenvalue analysis is not set up for uniform NLPO analysis. The default value is True.

Output:
  • The analysis is created and added to the project.

viiapackage.analyses.analysis_a7.viia_create_analysis_a7(project: ViiaProject, modes: int = 1000) Analysis[source]

Function to create the A3 eigenvalue analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • modes (int): Number of eigenmodes to take into account in the analysis. This value is only used in eigenvalue analysis (analysis type ‘EIGEN’). Default value 1000.

Output:
  • Creates and returns the A3 with all settings for VIIA.

viiapackage.analyses.analysis_a10.viia_create_analysis_a10(project: ViiaProject) Analysis[source]

This function creates the A10 analysis. It depends on the software set, which will switch between explicit (ABAQUS) and implicit (DIANA) analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • Creates and returns the A10 analysis object for the requested software with all settings for VIIA.

viiapackage.analyses.analysis_a11.viia_create_analysis_a11(project: ViiaProject, direction: Optional[str] = None, loadnr: Optional[int] = None, ac_pivots: Optional[str] = None, number_eigenmodes: int = 10, modal_pushover_flag: bool = True) Analysis[source]

This function creates the A11 analysis, complete existing model NLPO. This analysis is only available for DIANA.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • direction (str): The directions of which the analysis should be prepared. Default value is None, indicating no directions to be applied. Apply random selection of directions for example: ‘X_neg’, ‘Y_neg’, apply VIIA naming convention for directions.

  • loadnr (int): The associated ID (as integer) of the LoadCombination instance with the name corresponding to the NLPO load cases, if available. Default value is None.

  • ac_pivots (str): Name of method of obtaining arclength control pivots or a sequence of node numbers in string format. Default value is None.

  • number_eigenmodes (int): Only used when the modal pushover analysis is set up. This is the number of modes set for the eigenvalue analysis executed before the modal pushover analysis, the default value is 10. When the dominate mode is after the first 10 modes, this should be adjusted accordingly.

  • modal_pushover_flag (bool): If this argument is set to True, the eigenvalue analysis will executed before modal NLPO analysis, otherwise eigenvalue analysis is not set up for uniform NLPO analysis. Default value is True.

Output:
  • Creates and returns the A11 with all settings for VIIA.

viiapackage.analyses.analysis_a12.viia_create_analysis_a12(project: ViiaProject, iteration_method_requested: str = 'secant', output_1c: bool = False, nr_time_steps: Optional[int] = None) Analysis[source]

This function creates the A12 analysis, complete existing model NLTH. It depends on the software set, which will switch between explicit (ABAQUS) and implicit (DIANA) analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • iteration_method_requested (str): The iteration method selected for the time-steps execute, the default value is ‘secant’. Other options are ‘newton-raphson’, ‘linear-stiffness’ and ‘constant stiffness’.

  • output_1c (bool): Select to create output-block 1C for additional signal checking. Default value is False.

  • nr_time_steps (int): Overrule the number of time-steps to be used in the NLTH analysis. Default value None, time-steps are determined based on the length of the signal.

Output:
  • Creates and returns the A12 analysis object for the requested software with all settings for VIIA.

viiapackage.analyses.analysis_a13.viia_create_analysis_a13(project: ViiaProject) Analysis[source]

This function creates the A13 analysis (Non-linear static analysis with strengthening). It depends on the software set, which will switch between explicit (ABAQUS) and implicit (DIANA) analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • Creates and returns the A13 analysis object for the requested software with all settings for VIIA.

viiapackage.analyses.analysis_a14.viia_create_analysis_a14(project: ViiaProject, direction: Optional[str] = None, loadnr: Optional[int] = None, ac_pivots: Optional[str] = None, number_eigenmodes: int = 10, modal_pushover_flag: bool = True) Analysis[source]
Input:
  • project: VIIA project object containing collections of fem objects and project variables.

  • analysis_nr (str): Current analysis referencing the numbers for different analyese. For example ‘A4’.

  • direction (str): The directions of which the analysis should be prepared. The default value of the argument is None, indicating no directions to be applied. Apply random selection of directions for example: ‘X_neg’, ‘Y_neg’, apply VIIA naming convention for directions.

  • loadnr (int): The associated ID (as integer) of the LoadCombination instance with the name corresponding to the NLPO load_cases, if available.

  • ac_pivots (str): Name of method of obtaining arclength control pivots or a sequence of node numbers in string format.

  • number_eigenmodes (int): Only used when the modal pushover analysis is set up. This is the number of modes set for the eigenvalue analysis executed before the modal pushover analysis, the default value is 10. When the dominate mode is after the first 10 modes, this should be adjusted accordingly.

  • modal_pushover_flag (bool): If this argument is set to True, the eigenvalue analysis will be executed before modal NLPO analysis, otherwise eigenvalue analysis is not set up for uniform NLPO analysis. The default value is True.

Output:
  • The analysis is created and added to the project.

viiapackage.analyses.analysis_a15.viia_create_analysis_a15(project: ViiaProject, iteration_method_requested: str = 'secant', output_1c: bool = False, nr_time_steps: Optional[int] = None) Analysis[source]

This function creates the A15 analysis, complete strengthened model NLTH. It depends on the software set, which will switch between explicit (ABAQUS) and implicit (DIANA) analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • iteration_method_requested (str): The iteration method selected for the time-steps execute, the default value is ‘secant’. Other options are ‘newton-raphson’, ‘linear-stiffness’ and ‘constant stiffness’.

  • output_1c (bool): Select to create output-block 1C for additional signal checking. Default value is False.

  • nr_time_steps (int): Overrule the number of time-steps to be used in the NLTH analysis. Default value None, time-steps are determined based on the length of the signal.

Output:
  • Creates and returns the A15 analysis object for the requested software with all settings for VIIA.

viiapackage.analyses.analysis_a16.viia_create_analysis_a16(project: ViiaProject) Analysis[source]

This function creates the A16 analysis, complete existing model TVA linear static analysis and build the geo output for the corresponding foundation. This analysis is available for DIANA software.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • Creates and returns the A16 with all settings for VIIA.

viiapackage.analyses.analysis_a17.viia_create_analysis_a17(project: ViiaProject, modes: int) Analysis[source]

This function creates the A17 analysis, complete strengthened model modal response analysis. This analysis is only available for DIANA software.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • modes (int): Number of modes which should be considered in MRS analysis.

Output:
  • Creates and returns the A17 with all settings for VIIA.

viiapackage.analyses.analysis_nlpo.viia_create_analysis_nlpo(project: ViiaProject, analysis_nr: str, direction: Optional[str] = None, loadnr: Optional[int] = None, ac_pivots: Optional[str] = None, number_eigenmodes: int = 10, modal_pushover_flag: bool = True) Analysis[source]
Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • analysis_nr (str): Current analysis referencing the numbers for different analyses. For example ‘A4’.

  • direction (str): The directions of which the analysis should be prepared. The default value of the argument is None, indicating no directions to be applied. Apply random selection of directions for example: ‘X_neg’, ‘Y_neg’, apply VIIA naming convention for directions.

  • loadnr (int): The associated ID (as integer) of the LoadCombination instance with the name corresponding to the NLPO load-cases, if available.

  • ac_pivots (str): Name of method of obtaining arc length control pivots or a sequence of node numbers in string format.

  • number_eigenmodes (int): Only used when the modal pushover analysis is set up. This is the number of modes set for the eigenvalue analysis executed before the modal pushover analysis, the default value is 10. When the dominant mode is after the first 10 modes, this should be adjusted accordingly.

  • modal_pushover_flag (bool): If this argument is set to True, the eigenvalue analysis will executed before modal NLPO analysis, otherwise eigenvalue analysis is not set up for uniform NLPO analysis. The default value is True.

Output:
  • The analysis is created and added to the project.

viiapackage.analyses.analysis_nlth.viia_create_analysis_nlth(project: ViiaProject, name: str, iteration_method_requested: str = 'newton-raphson', output_1c: bool = False, acceleration_nodes: Optional[List[int]] = None, nr_time_steps: Optional[int] = None) Analysis[source]

This function creates the NLTH analysis. It depends on the software set, which will switch between explicit (ABAQUS) and implicit (DIANA) analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • name (str): Name of the analysis to be created.

  • iteration_method_requested (str): The iteration method selected for the time-steps execute, the default value is ‘newton-raphson’. Other options are ‘secant’ and ‘linear-stiffness’.

  • output_1c (bool): Select to create output-block 1C for additional signal checking. Default value is False.

  • acceleration_nodes (List): A list of nodes that user specified to collect acceleration.

  • nr_time_steps (int): Overrule the number of time-steps to be used in the NLTH analysis. Default value None, time-steps are determined based on the length of the signal.

Output:
  • Creates and returns the NLTH analysis object for the requested software with all settings for VIIA.

viiapackage.analyses.analysis_nlth.viia_create_nlth_abaqus(project: ViiaProject, name: str)[source]

This function creates the NLTH analysis for ABAQUS.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • name (str): Name of the analysis to be created.

Output:
  • Creates and returns the NLTH analysis object for ABAQUS software with all settings for VIIA.

viiapackage.analyses.analysis_nl_static.viia_create_analysis_nl_static(project: ViiaProject, name: str) Analysis[source]

This function creates the non-linear static analysis for VIIA. It depends on the software set, which will switch between explicit (ABAQUS) and implicit (DIANA) analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • name (str): Name of the analysis to be created.

Output:
  • Creates and returns the non-linera static analysis object for the requested software with all settings for VIIA workflow.

viiapackage.analyses.analysis_nl_static.viia_create_non_linear_static_abaqus(project: ViiaProject, name: str) Analysis[source]

This function creates the non-linear static analysis for explicit calculation (ABAQUS).

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • name (str): Name of the A10 analysis.

Output:
  • Creates and returns the A10 analysis object for ABAQUS with all settings for VIIA.

Sub-helper functions NLTH

viiapackage.analyses.helper_functions.arclength_control_pivots.viia_arclength_control_pivots(project: ViiaProject, method: str = 'top ridge')[source]

This function finds the MeshNode objects of suggested arclength control points through the specified method.

Warning

The model must be meshed, the dat-file should have been created and the dat-file should have been read and converted to DATDict, the dictionary containing the information in the dat-file.

Input:
  • method (str): Name of the method for defining the arclength control pivots.

Output:
  • Returns list with mesh nodes.

viiapackage.analyses.helper_functions.building_elements.viia_find_building_elements(project: ViiaProject)[source]

Function to collect the building mesh-elements.

viiapackage.analyses.helper_functions.check_foundation_type.viia_check_foundation_type(project: ViiaProject)[source]

“This function is used to check if shallow/pile/mixed foundation is applied

viiapackage.analyses.helper_functions.interface_elements.viia_find_interface_mesh_elements(project: ViiaProject)[source]

“This function is used to find the interface elements and nodes in the building

viiapackage.analyses.helper_functions.linear_building_elements.viia_find_linear_building_elements(project: ViiaProject)[source]

This function is used to find linear building elements.

viiapackage.analyses.helper_functions.linear_interface_elements.viia_find_linear_interface_elements(project: ViiaProject)[source]

This function is used to find linear interface elements.

viiapackage.analyses.helper_functions.mrs_nmodes_from_eigenvalue.viia_mrs_nmodes(project: ViiaProject)[source]

This function finds the number of nodes that are needed as input in MRS analysis. It looks through files in project directory for A3 - Eigenvalue fixed base OR A7 - Eigenvalue flex base results. If results are available then it finds nmodes from the .out file. If results are not present, then an error message is logged, asking user to either provide nmodes, or to put A3/A7 result files in the project directory.

Input:
  • project (obj): Project object containing collections and of fem objects and project variables.

Output:
  • Returns nmodes, an integer for number of modes needed in MRS analysis.

class viiapackage.analyses.helper_functions.phasing.Phase(layer: Layer, shapes: Optional[List[Shapes]] = None, connections: Optional[List[Connections]] = None, support_set: Optional[List[SupportSet]] = None, tying: Optional[List[Tying]] = None)[source]

Bases: object

This is the class of the phases in the model. It contains the attributes and methods for phases.

viiapackage.analyses.helper_functions.phasing.viia_phased_analysis(project: ViiaProject)[source]

Function to prepare for phased analysis, based on layers following VIIA name convention. Returns list with shapes, connections, supportsets and tyings active per phase.

Warning

Function makes use of shapes and connections in the dictionaries in Collections. Make sure all elements are present in those dictionaries.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • A list is generated and returned, containing the elements that are active in different phases list per phase consists of 4 lists of elements: shapes, connections (except for tyings), supports and tyings.

viiapackage.analyses.helper_functions.piles_elements.viia_find_piles_elements(project: ViiaProject) Tuple[List[MeshElement], List[MeshNode], List[MeshElement], List[MeshElement], List[MeshNode]][source]

This function is used to find pile elements for fixed or flexbase. For fixed base, pile elements, bottom nodes of pile are returned. For flexbase, pile spring elements, top nodes of Huan beam and pile reinforcements are returned.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • Returns tuple with 5 outputs:

  • List of pile mesh-elements used for the output of the fixed base analysis.

  • List of pile mesh-nodes (bottom-node of the pile shape) used for the output of the fixed base analysis.

  • List of pile reinforcement mesh-elements used for the output of the flexbase analysis.

  • List of pile mesh-elements used for the output of the flexbase analysis.

  • List of pile mesh-nodes used for the output of the flexbase analysis.

viiapackage.analyses.helper_functions.reference_soil.viia_find_reference_soil_nodes(project: Project)[source]

This function is used to find SRA reference points for soilblock

viiapackage.analyses.helper_functions.set_base_node.viia_set_base_node(project: ViiaProject) MeshNode[source]

This function looks for the closest node in the mesh to the center point of the foundation elements. The center is determined as the average between minimum and maximum coordinate in x-, y- and z-direction. All nodes are checked with the same z-coordinate as the average.

Warning

Function may not find correct node if different levels are present. In that case node 0 is set.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • The base node is updated or set in project.base_point.

viiapackage.analyses.helper_functions.shallow_foundation_elements.viia_find_boundary_interfaces_nodes_elements(project: ViiaProject)[source]

This function is used to find the mesh information related to shallow foundation.

viiapackage.analyses.helper_functions.shallow_foundation_elements.viia_find_shallow_foundation_elements(project: ViiaProject)[source]

This function is used to find the mesh information related to shallow foundation.

viiapackage.analyses.helper_functions.syntax_wrapper_diana.syntax_wrapper_diana(func)[source]

This function is used to work as a wrapper to change list output to string in DIANA syntax

viiapackage.analyses.helper_functions.viia_create_analysis_files_abaqus.viia_create_analysis_files_abaqus(project: ViiaProject, analysis: Analysis, abaqus_inp_location: Union[Path, str] = None) List[Path][source]

Function to create or collect the files required to perform the analysis. These files are collected in the current analysis folder.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • analysis (obj): Object reference of the analysis for which the files are created / collected.

  • abaqus_inp_location (Path or str): Location of the ABAQUS inp-file. By default the inp-file is retrieved from the workfolder, based on VIIA naming convention.

Output:
  • Returns list of all created files in the ‘current analysis folder’.

viiapackage.analyses.helper_functions.viia_create_analysis_files_diana.viia_create_analysis_files_diana(project: ViiaProject, analysis: Analysis, combox_location: Optional[str] = None) List[Path][source]

Function to create or collect the files required to perform the analysis. These files are collected in the current analysis folder. When the analysis is not performed in DIANA GUI directly, the dcf-file is updated and prepared for the analysis in DIANA command box.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • analysis (obj): Object reference of the analysis for which the files are created / collected.

  • combox_location (str): Optional input to prepare the dcf-file for running analysis. For example the location of the user supplied subroutines, if any. Default value is None, dcf-file is not updated.

Output:
  • Returns list of all created files in the ‘current analysis folder’.

viiapackage.analyses.helper_functions.viia_find_wall_reference_nodes.viia_find_3_mesh_nodes_on_wall(project: ViiaProject, wall: Wall) Tuple[List[MeshNode], List[List[float]]][source]

This function will look for the closest node in the mesh to the point in the bottom center, the center and the top center. The center is determined to be the average x- and y-coordinate between the biggest and smallest x- and y-coordinate of the contour of the wall. The point at the bottom is equal to the lowest z-coordinate, the top point the maximum z-coordinate of the contour of the wall and one in between those two.

Warning

The model must be meshed, the dat-file should have been created and the dat-file should have been read.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • wall (obj): Object reference of Wall.

Output:
  • Two variables are returned: A list with three MeshNode objects and a list with the coordinates of three center locations (bottom, middle, top) at the wall.

viiapackage.analyses.helper_functions.viia_find_wall_reference_nodes.viia_find_wall_reference_nodes(project: ViiaProject, return_dict: bool = False) Optional[List[MeshNode], Dict[Wall, List[MeshNode]]][source]

This function will determine for all walls in the model the reference mesh-nodes. It will collect the center bottom, center and center top mesh-nodes. For these nodes the displacements are collected in the analysis and plotted in the result handling.

Warning

The model must be meshed! For DIANA the dat-file should have been created and read.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • return_dict (bool): Adding an option to return a mapping between the shapes and nodes. By default, return_dict is set to False.

Output:
  • Returns a string with the requested nodes (when debug = False) or node list (when debug = True).

viiapackage.analyses.helper_functions.viia_get_abaqus_output.viia_get_abaqus_output(project: ViiaProject) Optional[Dict][source]

Helper function to get the output items for ABAQUS.

viiapackage.analyses.helper_functions.viia_run_analysis_diana.viia_run_analysis_diana(project: ViiaProject, analysis: Analysis)[source]

Function to run an analysis in DIANA, following the VIIA workflow.

Warning

Be aware that running in DIANA GUI can be not appropriate for NLTH (long calculation times). In those cases it is better to run analysis in combox.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • analysis (obj): Object reference of ‘Analysis’ class. The analysis which will be performed. Default value is ‘None’. In case of SCIA calculations no analysis is needed. In case of DIANA calculations, the analysis it is required to provide the analysis. Alternative (str): Name of the analysis to be performed (there should be an object with that analysis).

Output:
  • Analysis is run in DIANA.

Sub-helper functions NLPO

viiapackage.analyses.nlpo_helper_functions.viia_center_of_mass_nlpo.viia_center_of_mass_nlpo(project: ViiaProject) Dict[str, Dict[str, float]][source]

Function to calculate the center of mass of all floors of a building, necessary for NLPO analysis. Based on the NPR, a maximum of 3 floors can be analysed with NLPO. Therefore, the center of mass is calculated for at most 3 floors. Function is based on the naming convention for storeys.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • For each of the floors in the building, up to the 3rd floor (N3), the coordinates of the center of mass will be generated. The maximum number of floors is equal to 3 since this is the maximum number of floors allowed for NLPO analysis. The coordinates represent the evaluation node for every floor. This evaluation node can be used to generate capacity curves for NLPO analysis. The point is returned as dictionary with lists with the x-, y- and z-coordinate as floats (keys are the floor levels, for example ‘N1’).

  • Optional output (see input) returns the mass associated with the storeys as dictionary (keys are the floor levels, for example ‘N1’).

viiapackage.analyses.nlpo_helper_functions.viia_center_of_rigidity.viia_center_of_rigidity(piers: List[Dict[str, Union[float, Dict[str, float]]]]) Dict[str, Dict[str, float]][source]

This function computes the coordinates of the center of rigidity of a collection of piers for all four pushover directions. It assumes all piers to act as cantilever elements where the effective heights is allowed to be reduced based on the thicknesses of supporting floors.

Input:
  • piers (list): List of dictionaries containing at least the effective shear stiffnesses (‘k_shear’) in four directions (‘X_pos’, ‘X_neg’, ‘Y_pos’ and ‘Y_neg’) and normal force center of each pier (‘y_nc’).

Output:
  • Returns dictionary with center of rigidity, containing x- and y- coordinates of both corresponding pushover directions.

viiapackage.analyses.nlpo_helper_functions.viia_eccentricity_check.viia_eccentricity_check(project: ViiaProject) Dict[str, Dict[str, Dict[str, float]]][source]

This function checks whether the eccentricity of a building is sufficiently small in order for the NPR to allow pushover analysis.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

Output:
  • Returns dictionary containing the results of all eccentricity checks performed.

viiapackage.analyses.nlpo_helper_functions.viia_effective_pier_shear_stiffness.viia_effective_pier_shear_stiffness(project: ViiaProject, piers: List[dict]) List[dict][source]

Computes the effective shear stiffness of individual piers, based on the 4 pushover directions and appends the information to the dictionaries describing each pier.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • piers (list): list of dictionaries as obtained with viia_locate_piers(…)

Output:
  • Returns the piers including extended information.

viiapackage.analyses.nlpo_helper_functions.viia_identify_pushover_load_combination.viia_identify_pushover_load_combination(project: ViiaProject, direction: str) Tuple[int, str][source]

This function identifies the load number associated to default NLPO load-types, based on the pushover direction.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • direction (str): The pushover direction, select from ‘X_pos’, ‘X_neg’, ‘Y_pos’ or ‘Y_neg’.

Output:
  • Returns the type of loading identified as string: e.g. ‘modal’, ‘tri’, ‘eqacc’ or ‘uni’.

  • Returns the associated ID (as integer) of the LoadCombination instance with the name corresponding to the default load-cases, if available.

viiapackage.analyses.nlpo_helper_functions.viia_locate_piers.viia_locate_piers(project: ViiaProject, walls: List[Wall], allow_reduction_bottom: bool = True, allow_reduction_top: bool = True, tolerance: float = 0.001) List[dict][source]

Function to identify piers within walls and collect relevant coordinates, positioning and workplane for further processing.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • walls (list): List of object references of walls to be considered.

  • allow_reduction_bottom (bool): Select to take into account a reduction of the effective wall height due to the thickness of the supporting floor at the bottom of the wall. Default value True.

  • allow_reduction_top (bool): Select to take into account a reduction of the effective wall height due to the thickness of the supporting floor at the top of the wall. Default value True.

  • tolerance (float): Tolerance value for determining whether wall coordinates are constant in a direction. Default value is 0.001.

Output:
  • Returns a list of piers, containing relevant coordinates, positioning and workplane for further processing.