3. Phase 2 - Fixed base model phase

The purpose of the analysis model is to give a accurate representation of the mass, stiffness, deformation, force distribution and damping of a building system. This is done by a simplified model (simplified compared to an architectural model). For example small corners or recesses should be neglected, and structural schematisation should be set-up as unambiguous. With this improved model, the numerical process is more stable and the calculations are faster.

In the seismic analyses within VIIA, the fixed base condition is always initially addressed, since this is a less complex model boundary condition that can provide useful insights in the expected seismic performance and it is recommended to be always performed before the flexbase condition. The fixed base is therefore also part of the model check.

The previous phase delivered the model as a json-file. This file is loaded in the mainscript and the boundary conditions, the seismic loads and other settings for the specific analysis are added to the script.

_images/WorkflowPhase2.png

Figure 3.1 Phase 2 - Fixed base model.

Adding complexity to the model should be done in small steps, reducing the time spent on errors, because it is easier to pinpoint the location of the error. With this workflow, time is minimised and quality is guaranteed.

For the NLTH the final assessment is based on a flexbase analysis. In that phase it is necessary to use spring values according to the soil conditions, as observed for phase 3. The steps to run fixed base analysis is to verify the model and stepwise increase complexity.

Note

For each phase various steps need to be performed. The number assigned at the left side of the step description is used to identify the step and to link it with the corresponding item in the python-script. It is not necessary to perform the steps in the presented order. However all steps in a certain phase should be completely finished before moving forward to the next phase.

When the model is finished in the previous phase, a json-file is created containing all information on the model, the properties and the non-seismic loads. The modelscript is now finished and the analyses that are performed on the model are set in the mainscript. The first step in this mainscript is to load the previously created model and set the settings for the analysis. These settings aim at the boundary supports, the loads, the analysis and in some cases the result handling.

The mainscript should already be prepared and prefilled when the installation procedure was performed. Else you can download the template or retrieve it from the viiaPackage. The mainscript is specific for the analysis method. In contrast with the modelscript which is general applicable.

Template mainscript NLTH

The mainscript is started with the following code:

from viiapackage import *

This loads all functionality required for VIIA. It is not necessary to separately import the rhdhv_fem package. Start the project with viia_create_project() and use the VIIA object number. The version must be 1 for the existing building assessment. When strengthening measures are applied later in phase 5 the version is going up.

project = viia_create_project(project_name='811V', version_nr=1)

In case of object parts (separate analyses of building parts as agreed with the client) you need to provide the object part that is involved in the analysis. You can find the object part names on the MYVIIA webtool.

project = viia_create_project(project_name='587M', object_part='Woonhuis', version_nr=1)

The model created in the modelscript in phase 1 should now be loaded. To perform this action the function viia_read_dump() is available. This requires the json-file as input, for example:

project.viia_read_dump('model/811V-model')

Note that in the mainscript template some booleans are indicated at the top of the script. These have been added for convenience, based on earlier experiences of structural engineers. These can be used to easily switch on or off certain functionality that is explained in the following sections.

3.1. Step 8: Apply the boundary conditions and base motions for fixed base to the model

Different supports are applied in various phases. In this phase (the initial analyses phase) for the simplified model, supports have to be considered as ‘fixed base’. The model can consist of shallow foundations, pile foundation or a mixed foundation. Separate procedures are available for the different types of supports. In case of the mixed foundation both have to be performed.

3.1.1. Shallow foundations

The function viia_create_supports() is available to create shallow foundations in the model. When the fixed base is applied, the degrees of freedom of the supports are restrained in x-, y- and z-translational directions and the x- and y-rotational directions.

project.viia_create_supports()

In the example figure underneath the fixed base support has been applied to the model. Note that the check in DIANA should be done when model is meshed, because in Geometry view this can’t be checked properly. The figure shows how the supports look like in DIANA.

_images/shallow_foundation_01.png

Figure 3.2 Applying fixed base supports for shallow foundation.

The viia_create_supports() function applies supports on all the foundation strip surface shapes. If it is required to exclude certain foundation strips (when for example piles are supporting that foundation beam, see mixed foundation), these can be provided to the function in a list:

project.viia_create_supports('FixedBase', excluded_supported_surfaces=['F-FUNDERINGSSTROKEN-LIN-BETON-150-3'])

When additional surfaces are required to be supported (floor on grade) these can be added tin the same function:

project.viia_create_supports('FixedBase', additional_supported_shapes=['N0-VLOEREN-LIN-BETON-150-1'])

These two inputs are shown in the following example:

_images/shallow_foundation_02.png

Figure 3.3 Left: Example of excluding a foundation strip. Right: Example of adding an additional supported floor.

When the shallow foundation is created all the supported surfaces can be retrieved from the project. You can use the viia_create_plots() function to generate a top-view picture of the model with the supported surface shapes. You can use this function in PyCharm.

project.viia_create_plots(collections=project.viia_supported_surfaces, viewpoint=[90, 0])

3.1.2. Pile foundations

In the fixed base model the pile foundation is created with boundary springs with a relatively high stiffness (comparable to the MRS approach). Once the A1 static analysis is performed the pile loads are used in the separate workflow for piles. The function viia_create_piles() is available for creating the piles in the fixed base model. This function is used as follows (example with one pile only):

pile_coord = [[1.0, 0.3]]
project.viia_create_piles(
    coordinates=pile_coordinates_A, support_type='FixedBase', pile_group='A', cross_section='D200')

It is also possible to start the pile workflow already and get the pile dimensions from MYVIIA. In the following example the piles in group A are already present:

pile_coord = [[1.0, 0.3]]
project.viia_create_piles(coordinates=pile_coord, support_type='FixedBase', pile_group='A')

Here, first the x and y coordinates of the piles are specified. The function will check if there is a foundation beam (modelled as fstrip) present. The function then creates a column with 0.1m length connecting to the foundation strip. The cross section properties are required for the function and are obtained from MYVIIA.

In case of multiple pile groups, the piles should be created per pile group. Specify that the other piles should not be removed.

project.viia_create_piles(coordinates=[[3.0, 0.2]], pile_group='B', new_pile_foundation=False)

If the piles are not (yet) created on MYVIIA it is also possible to provide the dimensions for the piles. These can be specified in two ways:

project.viia_create_piles(
    coordinates=[[6.0, 0.2]], cross_section='D300', pile_group='C', new_pile_foundation=False)
project.viia_create_piles(
    coordinates=[[9.0, 0.2]], pile_shape='square', pile_dimension=0.4, pile_group='D', new_pile_foundation=False)

Note

If no piles are present in your model, remove the template code in the mainscript.

3.1.3. Mixed foundations

Both the procedures for shallow foundation and pile foundations should be followed. The shapes in Fstrip class (the foundation beams and foundation strips) should be excluded from the shallow foundation function when they are located on top of the piles.

3.1.4. Beam rotations along the axis of the beam

When line-shapes are connected to shell elements (used for surface shapes) the rotational degree of freedom of the line shape is not connected to the shell element as that element does not support that degree of freedom. This is fixed by providing line shapes with an auto created boundary condition, that applies a spring value with low stiffness to one of the ends of the line shape.

3.1.4.1. Base motions

Now the boundary conditions are applied, the base motions can be applied. To perform a dynamic analysis, an acceleration signal is applied on the supports of the model. The signals are provided via the NEN webtool and are site specific. MYVIIA already contains the required data. The base motions in three directions are created with the function viia_create_loads():

project.viia_create_loads('Base motion')

Loads and load-cases are generated with the names ‘Base motion X’, ‘Base motion Y’ and ‘Base motion Z’. The next step is to apply the base motion signals to these acceleration loads with viia_add_basemotion_signals():

project.viia_add_basemotion_signals(signal_list=['S1', 'S2', 'S3', 'S5', 'S6', 'S7', 'S9'])

You can select the signals that you want to apply in your analysis. In the final assessment minimum of 7 signals should have been selected. The list shown is the preferred list as the other signals have deviating time-steps. The used importance factor is derived from the consequence class that is defined on the MYVIIA webtool.

It has been agreed with the client to use updated z-signals for which matching has been performed on another frequency domain. Refer to note VIIA_QE_R376_N061, VIIA_QE_R376_N066 or VIIA_QE_R376_N067 for the derivation of the updated matched signals. You can select to use the original signals with the input argument ‘use_unmatched_signals=True’.

3.1.4.2. Load combinations

After creating the load cases, these must be combined. DIANA only performs calculations from load combinations. In ABAQUS loads that are defined in a step can be used directly. For a static analysis, a load combination ‘Dead load’ is created with the function viia_create_load_combination_static(). The function viia_create_load_combination_rob_test() creates the load combination ‘Rob-test’ that can be used for the Rob test in step A2. It can also be removed with the function viia_remove_load_combination_rob_test(). Functions overview in this section are review in Table 4. To create the load-combination for the seismic analysis use the function viia_create_load_combination_base_motion() and provide the signal number that needs to be analysed. The signals should be available (see the loads section on base motions).

project.viia_create_load_combination_base_motion('S3')

3.1.4.3. Linear material properties

In the fixed base model the material properties should be applied as linear materials. Because in the model script the materials are created non-linear, for this analyses phase you want to ‘temporarily’ remove the nonlinear material properties, the functions viia_linear_properties() and viia_non_linear_properties() can be used. They act as a toggle, to switch on and off the nonlinear material properties.

3.2. Step C1: Mesh check

After assigning material and completing the building geometry, the model is meshed. Before the model is ready to perform structural analyses, it is important to first go through checks related to the modelling process. This reduces the risk to face issues related to the model in later stages.

Some tools have been developed to assist in the mesh-check. The viia_check_mesh() function will generate a report that offers insights into the mesh setup. It displays the count of mesh nodes and elements and a list of the element-types used. Alongside general information, the report includes graphs depicting distributions.

project.viia_check_mesh()

The function checks for the following aspects of the surface mesh-elements:

  • Check if the angles of the mesh-element are larger than the minimum angle requirement (VIIA default 15 degrees).

  • Check if the angles of the mesh-element are smaller than the maximum angle requirement (VIIA default 165 degrees).

  • Check if the skewness of the mesh-element is smaller than the maximum skewness requirement (VIIA default 45 degrees).

  • Check if the aspect-ratio of the mesh-element is smaller than the maximum aspect-ratio requirement (VIIA default is 5).

When there are elements present that do not comply to the VIIA requirements, a warning is raised. Review the failing mesh-elements, the mesh should be improved here. In most cases the geometry can be simplified in these locations, else specified mesh-seeding could help to improve the mesh quality. Discuss with your Lead Engineer how to proceed.

_images/visualise_mesh_check_diana.png

Figure 3.4 Visualisation in DIANA software with the locations of non-complying mesh-elements.

For convenience the DIANA command is printed / logged to visualise these elements in DIANA software. Simply copy paste the line into the DIANA console. The elements exceeding any of the requirements are selected. This syntax is also added at the end of the mesh check pdf report.

You can find more information on this topic in the documentation of the mesh checks in the fem-client.

3.3. Step A1: Linear static analysis

The linear static analysis aims to evaluate the existing condition of the building without applying seismic load (so mostly vertical loads due to self-weight and part of the imposed loads).

After the A1 analysis, the structural engineer should provide the geotechnical advisor the following information if the geotechnical assessment is required:

  • Mass of the building (including also the weight of the outer leaf).

  • Surface area of the foundation strip (in case of shallow foundation).

  • Number of piles in the foundation (in case of pile foundation).

  • Lay-out of the foundation.

In this way the geotechnical will be able to provide the value of the spring stiffnesses required in Step 9 of Phase 3: Foundation and SSI.

Note

The evaluated structure is an existing structure, so structural elements should not be failing. When in the linear analysis it is found that an element or elements are failing by large margins, it may be an indication of:

  • Missing important structural elements in the model (maybe considered as non-structural and were taken out from the analysis).

  • Inappropriate material properties applied to the element.

  • Elements are not well connected (connections can be either at the edges (e.g.: top and bottom of the element) or also connected through in a contact area (like timber beams fix to timber plates at the roof or timber elements fix to masonry).

By means of the function viia_analysis() a linear static calculation is created and performed. The following is an example for A1 analysis:

project.viia_analysis(analysis_nr='A1', run=True)

If problems arise from the results of the linear static analysis, observe the following.

  • When an analysis converges:

    • Add result item for stresses to the analysis and analyse again to see where peak stresses occur.

    • For other possibilities regarding bug fixes see section analyseCalculation-label

  • Analysis diverges:

    • If divergence occurs see section analyseCalculation-label

For a better understanding of the dcf-file, read the how-to guide: How to DCF settings.

The result handling is performed automatically when the analysis is created and directly ran in DIANA with the function viia_results().

The center of mass and weight of the building are logged and together with the area of the shallow foundation sent to MYVIIA, from which the geotechnical advisor will calculate the properties for the flexbase (if geotechnical assessment is performed). The uploaded values can be checked in MYVIIA webtool.

The following results should be observed/checked for the linear static analysis:

When geotechnical assessment is required, the weight of the building is calculated in this analysis and is sent to the geotechnical advisor. Also the area of the shallow foundation is collected. This is automated via the MYVIIA webtool. You can verify if the correct values are sent in model check.

After the A1 analysis with piles in the model the separate workflow for piles should be performed. This workflow is required to get the properties for the piles in the flexbase model. The workflow is described in ‘pile workflow’.

The results of this analysis do not have to be reported. The analysis results are checked during the model check.

3.4. Step A2: Rob-test (Optional)

In the so-called Rob test, an imposed displacement of 1m is applied in the z-direction to the actual support points. If found necessary, the test can also be carried out in the x and y directions. The test is successful if the displacement of the whole model is exactly 1m (see the figure below in analysis).

By means of the following functions, the Rob-test process can be applied to the structure. It includes functions to apply the displacement and to conduct the later analysis. The preferred setting for the run argument of viia_analysis() is ‘True’, indicating direct calculation in DIANA when running mainscript in DIANA. The analysis normally doesn’t require much time.

project.viia_create_loads(load='Rob-test')
project.viia_create_load_combination_rob_test()
project.viia_analysis(analysis_nr='A2', run=True)

When dealing with pile supports, it is necessary to add a temporary support in the z-direction, which should be removed after the analysis. This is done by surrounding the analysis function as follows:

project.viia_update_pile_supports_for_rob_test()
project.viia_analysis(analysis_nr='A2', run=True)
project.viia_remove_temporarily_pile_supports_for_rob_test()

The load or combination used for the Rob test can also be removed after analysing with the following functions:

project.viia_remove_loads(load='Rob-test')
project.viia_remove_load_combination_rob_test()
_images/RobTestSuccess.png

Figure 3.5 Display of the results (displacements) of the Rob test: test successful!

The figure presented above shows the expected typical results for a building passing and failing the Rob test. The function called to conduct the Rob test are summarised in Table 9.

Strange supports constrains or/and loose elements can be encountered, resulting in parts of the building not moving. The colour grading of the building is in this case not uniform (colours corresponding to the structure displacements).

For a better understanding of the dcf-file, read the how-to guide: How to DCF settings.

The result handling is performed automatically when the analysis is created and directly ran in DIANA with the function viia_results(). The conclusion of the check is logged.

Check the result pictures created in the A2 folder. The following results from the test are to be checked:

This step does not have to be reported. The analysis results can verified during the model check (optional).

3.5. Step A3: Eigenfrequency analysis

Note

The eigenfrequency analysis in NLTH is required for models with pile foundations. For shallow foundations this analysis is recommended.

An eigenvalue analysis is performed to gain insight about the dynamic characteristics of the structures and to recognise mistakes/bugs that may show in this analysis.

Initially, run the analysis only with 10 eigenmodes. If elements of the building are, for example, not properly connected, they will present a very low natural frequency (below 5 Hz for one storey building, often due to low stiffness or not propertly fixed elements, inspect the text file generated as in the figure below). Check both displacements and rotations. When such errors have been taken out from the eigenvalue analysis, you can proceed with more eigenmodes.

_images/textfileEFA.png

Figure 3.6 Example of the tabulated output-file the eigenfrequency analysis in DIANA. The percentage here refers to the mass participation and cum. percent. to the cumulative mass participation.

Using the function viia_analysis(), an eigenvalue analysis can be applied to the structure with the predefined set output-items. The preferred setting for the run argument of the function is ‘True’, indicating direct calculation in DIANA. Initially set the number of eigenmodes to 10. When finishing this initial assessment, the number of modes can be set to 1000 (or lower according to how fast the required mass participation is reached). The analysis normally does not take to much time (in case not to many eigenfrequencies are requested). The analysis is created with:

project.viia_analysis(analysis_nr='A3', run=True, nmodes=1000)

If problems arise from the results of the linear static analysis, observe the following.

  • Zero eigenfrequency:

    • You can try to apply shift frequency in DIANA as it can than show the location of an error in your model.

  • When an analysis converges:

    • Add result item for stresses to the analysis and analyse again to see where peak stresses occur.

    • For other possibilities regarding bug fixes see section analyseCalculation-label.

  • Analysis diverges:

    • If divergence occurs see section analyseCalculation-label.

For a better understanding of the dcf-file, read the how-to guide: How to DCF settings.

The result handling is performed automatically when the analysis is created and directly ran in DIANA with the function viia_results().

The following items should be checked:

This step does not have to be reported. The analysis results can verified during the model check (optional).

3.6. Step A4: Linear fixed base LTH analysis (Optional)

The purpose of this calculation is to gain insight into the behavior of the building to an input earthquake ground motion and keeping the material properties lineal (Linear Time History ‘LTH’ analysis). By keeping the modelling simple and the material properties linear, the model is easy to calculate. This calculation will be the reference point to compare the behaviour of the model in an NLTH calculation when the NLTH calculation diverges. The analysis is performed on 1 signal, selected from the complete set and expected or estimated to be the most critical base-motion signals for the structure. To decide for the signal compare the frequency contents of the signal with the frequencies of the structure from the A3 analysis.

Using the function viia_analysis(), a time-history can be applied with the appropriate set of output-items. Set the run argument to the default ‘False’, indicating to prepare the dcf- and dat-file for calculations in DIANA command console (combox). By default the analysis is prepared for running on one of the DIANA servers, this is also the preferred option.

For this analysis it is required to set all materials to linear material properties. This can be done with the function viia_linear_properties().

project.viia_linear_properties()

The next step is to apply the base motions. You need to apply the base motions with viia_create_loads(), viia_add_basemotion_signals(), and viia_create_load_combination_base_motion().

project.viia_create_loads('Base motion')
project.viia_add_basemotion_signals()
project.viia_create_load_combination_base_motion('S3')

Now the analysis can be created. Note that you can only select the signals for which you provided the details in viia_add_basemotion_signals(), by default you can select from signals S1, S2, S3, S5, S6, S7 and S9.

project.viia_analysis(analysis_nr='A4', run=False, signals=['S3'])

The calculation is a non-linear calculation over time. But, when material properties are kept linear, a linear dynamic analysis in the time domain will performed. The argument signals should be a list of the signals for which the analyses are created. When selecting ‘Default’, all the signals are applied in 7 separate analyses. This is not required for A4 analysis! Files are generated in a folder with a timestamp with sub-folders with the selected signals. A batch file is generated to easily execute the analyses.

When continuing in the workflow, the linear material properties can be reset to their original non-linear variant. Use the inverse function viia_non_linear_properties() for this. Materials should be modelled from the start in the mainscript as non-linear and this reverse function only works after the application of the set linear function.

If problems arise, the following steps can be taken:

  • When an analysis converges:

    • Add result item for stresses to the analysis and analyse again to see where peak stresses occur.

    • For other possibilities regarding bug fixes see section analyseCalculation-label.

  • Analysis diverges:

    • If divergence occurs see section analyseCalculation-label.

For a better understanding of the dcf-file, read the how-to guide: How to DCF settings.

As this analysis is time-consuming it is advised to run the analysis on the server in the DIANA command console (combox). The main goal of this analysis is checking the set-up of the phasing and the convergence behaviour of the first static steps. It is not required to complete the analysis.

The following output-items should be checked:

This step does not have to be reported. The analysis results can be verified during the model check (optional).


After completing all the steps of the fixed base model phase you can continue working on the ‘Flexbase model phase’.