Note
Click here to download the full example code
Usage of the BendingTestAnalytical¶
BendingTestAnalytical is a simple model implemented for testing and training purpose.
from __future__ import annotations
import logging
from gemseo.core.discipline import Discipline
from numpy import array
from vimseo import EXAMPLE_RUNS_DIR
from vimseo.api import activate_logger
from vimseo.api import create_model
from vimseo.core.model_settings import IntegratedModelSettings
activate_logger(level=logging.INFO)
Introduction
BendingTestAnalytical is based on Bernoulli beam theory. It is configured on imposed displacement. It computes the reaction forces and the displacement and moment along the beam.
First, let's instantiate the model from the API:
model_name = "BendingTestAnalytical"
load_case = "Cantilever"
model_settings = IntegratedModelSettings(
directory_archive_root=EXAMPLE_RUNS_DIR / "archive/basic_usage",
directory_scratch_root=EXAMPLE_RUNS_DIR / "scratch/basic_usage",
cache_file_path=EXAMPLE_RUNS_DIR
/ f"caches/basic_usage/{model_name}_{load_case}_cache.hdf",
)
model = create_model(
model_name,
load_case,
model_options=model_settings,
)
model.set_cache(Discipline.CacheType.NONE)
model.archive_manager._accept_overwrite_job_dir = True
The model description can be accessed like this: Note that the load case contains the names of the boundary conditions, and the output variables to be plotted on x-y plots:
print(model.description)
Out:
Model BendingTestAnalytical: An analytical model for the bending of a parallelepipedic beam
Load case:
Load case Cantilever: A cantilever load case.
Boundary condition variables:
['imposed_dplt', 'relative_dplt_location']
Plot parameters:
{
"curves": []
}
Load:
Load(direction='', sign='', type='')
Default values:
Default geometrical variables:
{"height": [40.0], "length": [600.0], "width": [30.0]}
Default numerical variables:
{}
Default boundary conditions variables:
{"imposed_dplt": [-5.0], "relative_dplt_location": [1.0]}
Default material variables:
{"nu_p": [0.3], "young_modulus": [210000.0]}
model_inputs:
[
"length",
"width",
"height",
"imposed_dplt",
"relative_dplt_location",
"young_modulus",
"nu_p"
]
model_outputs:
[
"reaction_forces",
"maximum_dplt",
"dplt_grid",
"location_max_dplt",
"dplt",
"moment",
"moment_grid",
"dplt_at_force_location",
"error_code",
"model",
"load_case",
"description",
"job_name",
"persistent_result_files",
"n_cpus",
"date",
"cpu_time",
"user",
"machine",
"vims_git_version",
"directory_archive_root",
"directory_archive_job",
"directory_scratch_root",
"directory_scratch_job"
]
An illustration of the model can be shown:
model.show_image()
# and the path to the image accessed like this:
model.image_path

Out:
PosixPath('/home/sebastien.bocquet/PycharmProjects/vimseo/src/vimseo/problems/load_cases/Beam_Cantilever.png')
Specific image can also be associated with the load case:
model.load_case.show_image()

Executing the model with default parameters is straightforward:
model.execute()
Out:
INFO - 16:51:50: Current root directory of job directory is /home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage.
{'young_modulus': array([210000.]), 'nu_p': array([0.3]), 'length': array([600.]), 'width': array([30.]), 'height': array([40.]), 'imposed_dplt': array([-5.]), 'relative_dplt_location': array([1.]), 'reaction_forces': array([-2333.33333333]), 'moment': array([1400000., 0.]), 'moment_grid': array([ 0., 600.]), 'dplt': array([ 0.00000000e+00, -7.62651513e-04, -3.04029995e-03, -6.81748616e-03,
-1.20787510e-02, -1.88086353e-02, -2.69916799e-02, -3.66124257e-02,
-4.76554134e-02, -6.01051841e-02, -7.39462784e-02, -8.91632373e-02,
-1.05740602e-01, -1.23662912e-01, -1.42914710e-01, -1.63480535e-01,
-1.85344930e-01, -2.08492434e-01, -2.32907588e-01, -2.58574934e-01,
-2.85479012e-01, -3.13604363e-01, -3.42935528e-01, -3.73457048e-01,
-4.05153463e-01, -4.38009315e-01, -4.72009144e-01, -5.07137491e-01,
-5.43378897e-01, -5.80717902e-01, -6.19139049e-01, -6.58626877e-01,
-6.99165927e-01, -7.40740741e-01, -7.83335858e-01, -8.26935821e-01,
-8.71525169e-01, -9.17088444e-01, -9.63610186e-01, -1.01107494e+00,
-1.05946724e+00, -1.10877163e+00, -1.15897265e+00, -1.21005484e+00,
-1.26200274e+00, -1.31480090e+00, -1.36843385e+00, -1.42288614e+00,
-1.47814230e+00, -1.53418688e+00, -1.59100442e+00, -1.64857946e+00,
-1.70689653e+00, -1.76594019e+00, -1.82569497e+00, -1.88614540e+00,
-1.94727605e+00, -2.00907143e+00, -2.07151610e+00, -2.13459459e+00,
-2.19829145e+00, -2.26259122e+00, -2.32747844e+00, -2.39293764e+00,
-2.45895337e+00, -2.52551018e+00, -2.59259259e+00, -2.66018516e+00,
-2.72827242e+00, -2.79683891e+00, -2.86586918e+00, -2.93534776e+00,
-3.00525920e+00, -3.07558804e+00, -3.14631882e+00, -3.21743607e+00,
-3.28892434e+00, -3.36076818e+00, -3.43295211e+00, -3.50546069e+00,
-3.57827845e+00, -3.65138993e+00, -3.72477968e+00, -3.79843224e+00,
-3.87233214e+00, -3.94646393e+00, -4.02081214e+00, -4.09536133e+00,
-4.17009602e+00, -4.24500077e+00, -4.32006011e+00, -4.39525857e+00,
-4.47058072e+00, -4.54601107e+00, -4.62153419e+00, -4.69713459e+00,
-4.77279684e+00, -4.84850546e+00, -4.92424500e+00, -5.00000000e+00]), 'dplt_grid': array([ 0. , 6.06060606, 12.12121212, 18.18181818,
24.24242424, 30.3030303 , 36.36363636, 42.42424242,
48.48484848, 54.54545455, 60.60606061, 66.66666667,
72.72727273, 78.78787879, 84.84848485, 90.90909091,
96.96969697, 103.03030303, 109.09090909, 115.15151515,
121.21212121, 127.27272727, 133.33333333, 139.39393939,
145.45454545, 151.51515152, 157.57575758, 163.63636364,
169.6969697 , 175.75757576, 181.81818182, 187.87878788,
193.93939394, 200. , 206.06060606, 212.12121212,
218.18181818, 224.24242424, 230.3030303 , 236.36363636,
242.42424242, 248.48484848, 254.54545455, 260.60606061,
266.66666667, 272.72727273, 278.78787879, 284.84848485,
290.90909091, 296.96969697, 303.03030303, 309.09090909,
315.15151515, 321.21212121, 327.27272727, 333.33333333,
339.39393939, 345.45454545, 351.51515152, 357.57575758,
363.63636364, 369.6969697 , 375.75757576, 381.81818182,
387.87878788, 393.93939394, 400. , 406.06060606,
412.12121212, 418.18181818, 424.24242424, 430.3030303 ,
436.36363636, 442.42424242, 448.48484848, 454.54545455,
460.60606061, 466.66666667, 472.72727273, 478.78787879,
484.84848485, 490.90909091, 496.96969697, 503.03030303,
509.09090909, 515.15151515, 521.21212121, 527.27272727,
533.33333333, 539.39393939, 545.45454545, 551.51515152,
557.57575758, 563.63636364, 569.6969697 , 575.75757576,
581.81818182, 587.87878788, 593.93939394, 600. ]), 'dplt_at_force_location': array([-5.]), 'maximum_dplt': array([-5.]), 'location_max_dplt': array([600.]), 'error_code': array([0]), 'model': array(['BendingTestAnalytical'], dtype='<U21'), 'load_case': array(['Cantilever'], dtype='<U10'), 'description': array([''], dtype='<U1'), 'job_name': array([''], dtype='<U1'), 'persistent_result_files': array([''], dtype='<U1'), 'n_cpus': array([1]), 'date': array(['2026-05-11 16:51:50.839672'], dtype='<U26'), 'cpu_time': array([0.02049112]), 'user': array(['sebastien.bocquet'], dtype='<U17'), 'machine': array(['IPF7101'], dtype='<U7'), 'vims_git_version': array(['45528c25944ac4bb00d0644363b39dcb47cf0899'], dtype='<U40'), 'directory_archive_root': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage'],
dtype='<U100'), 'directory_archive_job': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage/BendingTestAnalytical/Cantilever/7'],
dtype='<U135'), 'directory_scratch_root': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/scratch/basic_usage'],
dtype='<U100'), 'directory_scratch_job': array([''], dtype='<U1')}
And input parameters could also be redefined. First get the list of parameters:
model.get_input_data_names()
Out:
['length', 'width', 'height', 'imposed_dplt', 'relative_dplt_location', 'young_modulus', 'nu_p']
Then modify inputs, for instance, Young's modulus:
model.execute({"young_modulus": array([195000.0])})
Out:
INFO - 16:51:50: Current root directory of job directory is /home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage.
{'length': array([600.]), 'width': array([30.]), 'height': array([40.]), 'imposed_dplt': array([-5.]), 'relative_dplt_location': array([1.]), 'young_modulus': array([195000.]), 'nu_p': array([0.3]), 'reaction_forces': array([-2166.66666667]), 'moment': array([1300000., 0.]), 'moment_grid': array([ 0., 600.]), 'dplt': array([ 0.00000000e+00, -7.62651513e-04, -3.04029995e-03, -6.81748616e-03,
-1.20787510e-02, -1.88086353e-02, -2.69916799e-02, -3.66124257e-02,
-4.76554134e-02, -6.01051841e-02, -7.39462784e-02, -8.91632373e-02,
-1.05740602e-01, -1.23662912e-01, -1.42914710e-01, -1.63480535e-01,
-1.85344930e-01, -2.08492434e-01, -2.32907588e-01, -2.58574934e-01,
-2.85479012e-01, -3.13604363e-01, -3.42935528e-01, -3.73457048e-01,
-4.05153463e-01, -4.38009315e-01, -4.72009144e-01, -5.07137491e-01,
-5.43378897e-01, -5.80717902e-01, -6.19139049e-01, -6.58626877e-01,
-6.99165927e-01, -7.40740741e-01, -7.83335858e-01, -8.26935821e-01,
-8.71525169e-01, -9.17088444e-01, -9.63610186e-01, -1.01107494e+00,
-1.05946724e+00, -1.10877163e+00, -1.15897265e+00, -1.21005484e+00,
-1.26200274e+00, -1.31480090e+00, -1.36843385e+00, -1.42288614e+00,
-1.47814230e+00, -1.53418688e+00, -1.59100442e+00, -1.64857946e+00,
-1.70689653e+00, -1.76594019e+00, -1.82569497e+00, -1.88614540e+00,
-1.94727605e+00, -2.00907143e+00, -2.07151610e+00, -2.13459459e+00,
-2.19829145e+00, -2.26259122e+00, -2.32747844e+00, -2.39293764e+00,
-2.45895337e+00, -2.52551018e+00, -2.59259259e+00, -2.66018516e+00,
-2.72827242e+00, -2.79683891e+00, -2.86586918e+00, -2.93534776e+00,
-3.00525920e+00, -3.07558804e+00, -3.14631882e+00, -3.21743607e+00,
-3.28892434e+00, -3.36076818e+00, -3.43295211e+00, -3.50546069e+00,
-3.57827845e+00, -3.65138993e+00, -3.72477968e+00, -3.79843224e+00,
-3.87233214e+00, -3.94646393e+00, -4.02081214e+00, -4.09536133e+00,
-4.17009602e+00, -4.24500077e+00, -4.32006011e+00, -4.39525857e+00,
-4.47058072e+00, -4.54601107e+00, -4.62153419e+00, -4.69713459e+00,
-4.77279684e+00, -4.84850546e+00, -4.92424500e+00, -5.00000000e+00]), 'dplt_grid': array([ 0. , 6.06060606, 12.12121212, 18.18181818,
24.24242424, 30.3030303 , 36.36363636, 42.42424242,
48.48484848, 54.54545455, 60.60606061, 66.66666667,
72.72727273, 78.78787879, 84.84848485, 90.90909091,
96.96969697, 103.03030303, 109.09090909, 115.15151515,
121.21212121, 127.27272727, 133.33333333, 139.39393939,
145.45454545, 151.51515152, 157.57575758, 163.63636364,
169.6969697 , 175.75757576, 181.81818182, 187.87878788,
193.93939394, 200. , 206.06060606, 212.12121212,
218.18181818, 224.24242424, 230.3030303 , 236.36363636,
242.42424242, 248.48484848, 254.54545455, 260.60606061,
266.66666667, 272.72727273, 278.78787879, 284.84848485,
290.90909091, 296.96969697, 303.03030303, 309.09090909,
315.15151515, 321.21212121, 327.27272727, 333.33333333,
339.39393939, 345.45454545, 351.51515152, 357.57575758,
363.63636364, 369.6969697 , 375.75757576, 381.81818182,
387.87878788, 393.93939394, 400. , 406.06060606,
412.12121212, 418.18181818, 424.24242424, 430.3030303 ,
436.36363636, 442.42424242, 448.48484848, 454.54545455,
460.60606061, 466.66666667, 472.72727273, 478.78787879,
484.84848485, 490.90909091, 496.96969697, 503.03030303,
509.09090909, 515.15151515, 521.21212121, 527.27272727,
533.33333333, 539.39393939, 545.45454545, 551.51515152,
557.57575758, 563.63636364, 569.6969697 , 575.75757576,
581.81818182, 587.87878788, 593.93939394, 600. ]), 'dplt_at_force_location': array([-5.]), 'maximum_dplt': array([-5.]), 'location_max_dplt': array([600.]), 'error_code': array([0]), 'model': array(['BendingTestAnalytical'], dtype='<U21'), 'load_case': array(['Cantilever'], dtype='<U10'), 'description': array([''], dtype='<U1'), 'job_name': array([''], dtype='<U1'), 'persistent_result_files': array([''], dtype='<U1'), 'n_cpus': array([1]), 'date': array(['2026-05-11 16:51:50.854998'], dtype='<U26'), 'cpu_time': array([0.00368834]), 'user': array(['sebastien.bocquet'], dtype='<U17'), 'machine': array(['IPF7101'], dtype='<U7'), 'vims_git_version': array(['45528c25944ac4bb00d0644363b39dcb47cf0899'], dtype='<U40'), 'directory_archive_root': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage'],
dtype='<U100'), 'directory_archive_job': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage/BendingTestAnalytical/Cantilever/8'],
dtype='<U135'), 'directory_scratch_root': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/scratch/basic_usage'],
dtype='<U100'), 'directory_scratch_job': array([''], dtype='<U1')}
Switching load cases: A new model must be created to switch to another load case:
load_case = "ThreePoints"
model_settings = IntegratedModelSettings(
directory_archive_root=EXAMPLE_RUNS_DIR / "archive/basic_usage",
directory_scratch_root=EXAMPLE_RUNS_DIR / "scratch/basic_usage",
cache_file_path=EXAMPLE_RUNS_DIR
/ f"caches/basic_usage/{model_name}_{load_case}_cache.hdf",
)
model = create_model(
model_name,
load_case,
model_options=model_settings,
)
# It is also possible to specify values for other inputs:
output_data = model.execute({"height": array([20.0])})
print(output_data)
Out:
INFO - 16:51:50: Found 2 entries in the cache file : /home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/caches/basic_usage/BendingTestAnalytical_ThreePoints_cache.hdf node : node
{'length': array([600.]), 'width': array([30.]), 'height': array([20.]), 'imposed_dplt': array([-5.]), 'relative_support_location': array([0.5]), 'young_modulus': array([210000.]), 'nu_p': array([0.3]), 'cpu_time': array([0.01815581]), 'date': array(['2026-03-26 14:54:13.873636'], dtype='<U26'), 'description': array([''], dtype='<U1'), 'directory_archive_job': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage/BendingTestAnalytical/ThreePoints/1'],
dtype='<U136'), 'directory_archive_root': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage'],
dtype='<U100'), 'directory_scratch_job': array([''], dtype='<U1'), 'directory_scratch_root': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/scratch/basic_usage'],
dtype='<U100'), 'dplt': array([-2.52346299e-19, -1.51499692e-01, -3.02875712e-01, -4.54004384e-01,
-6.04762037e-01, -7.55024997e-01, -9.04669592e-01, -1.05357215e+00,
-1.20160899e+00, -1.34865645e+00, -1.49459084e+00, -1.63928851e+00,
-1.78262577e+00, -1.92447895e+00, -2.06472438e+00, -2.20323838e+00,
-2.33989729e+00, -2.47457742e+00, -2.60715511e+00, -2.73750669e+00,
-2.86550847e+00, -2.99103678e+00, -3.11396796e+00, -3.23417833e+00,
-3.35154421e+00, -3.46594194e+00, -3.57724784e+00, -3.68533823e+00,
-3.79008945e+00, -3.89137781e+00, -3.98907965e+00, -4.08307130e+00,
-4.17322908e+00, -4.25942931e+00, -4.34154833e+00, -4.41946245e+00,
-4.49304802e+00, -4.56218135e+00, -4.62673877e+00, -4.68659661e+00,
-4.74163119e+00, -4.79171884e+00, -4.83673589e+00, -4.87655867e+00,
-4.91106350e+00, -4.94012670e+00, -4.96362461e+00, -4.98143356e+00,
-4.99342986e+00, -4.99948985e+00, -4.99948985e+00, -4.99342986e+00,
-4.98143356e+00, -4.96362461e+00, -4.94012670e+00, -4.91106350e+00,
-4.87655867e+00, -4.83673589e+00, -4.79171884e+00, -4.74163119e+00,
-4.68659661e+00, -4.62673877e+00, -4.56218135e+00, -4.49304802e+00,
-4.41946245e+00, -4.34154833e+00, -4.25942931e+00, -4.17322908e+00,
-4.08307130e+00, -3.98907965e+00, -3.89137781e+00, -3.79008945e+00,
-3.68533823e+00, -3.57724784e+00, -3.46594194e+00, -3.35154421e+00,
-3.23417833e+00, -3.11396796e+00, -2.99103678e+00, -2.86550847e+00,
-2.73750669e+00, -2.60715511e+00, -2.47457742e+00, -2.33989729e+00,
-2.20323838e+00, -2.06472438e+00, -1.92447895e+00, -1.78262577e+00,
-1.63928851e+00, -1.49459084e+00, -1.34865645e+00, -1.20160899e+00,
-1.05357215e+00, -9.04669592e-01, -7.55024997e-01, -6.04762037e-01,
-4.54004384e-01, -3.02875712e-01, -1.51499692e-01, -1.55887944e-17]), 'dplt_at_force_location': array([-4.99948985]), 'dplt_grid': array([ 0. , 6.06060606, 12.12121212, 18.18181818,
24.24242424, 30.3030303 , 36.36363636, 42.42424242,
48.48484848, 54.54545455, 60.60606061, 66.66666667,
72.72727273, 78.78787879, 84.84848485, 90.90909091,
96.96969697, 103.03030303, 109.09090909, 115.15151515,
121.21212121, 127.27272727, 133.33333333, 139.39393939,
145.45454545, 151.51515152, 157.57575758, 163.63636364,
169.6969697 , 175.75757576, 181.81818182, 187.87878788,
193.93939394, 200. , 206.06060606, 212.12121212,
218.18181818, 224.24242424, 230.3030303 , 236.36363636,
242.42424242, 248.48484848, 254.54545455, 260.60606061,
266.66666667, 272.72727273, 278.78787879, 284.84848485,
290.90909091, 296.96969697, 303.03030303, 309.09090909,
315.15151515, 321.21212121, 327.27272727, 333.33333333,
339.39393939, 345.45454545, 351.51515152, 357.57575758,
363.63636364, 369.6969697 , 375.75757576, 381.81818182,
387.87878788, 393.93939394, 400. , 406.06060606,
412.12121212, 418.18181818, 424.24242424, 430.3030303 ,
436.36363636, 442.42424242, 448.48484848, 454.54545455,
460.60606061, 466.66666667, 472.72727273, 478.78787879,
484.84848485, 490.90909091, 496.96969697, 503.03030303,
509.09090909, 515.15151515, 521.21212121, 527.27272727,
533.33333333, 539.39393939, 545.45454545, 551.51515152,
557.57575758, 563.63636364, 569.6969697 , 575.75757576,
581.81818182, 587.87878788, 593.93939394, 600. ]), 'error_code': array([0]), 'job_name': array([''], dtype='<U1'), 'load_case': array(['ThreePoints'], dtype='<U11'), 'location_max_dplt': array([296.96969697]), 'machine': array(['IPF7101'], dtype='<U7'), 'maximum_dplt': array([-4.99948985]), 'model': array(['BendingTestAnalytical'], dtype='<U21'), 'moment': array([ 0., -700000., 0.]), 'moment_grid': array([ 0., 300., 600.]), 'n_cpus': array([1]), 'persistent_result_files': array([''], dtype='<U1'), 'reaction_forces': array([-4666.66666667]), 'user': array(['sebastien.bocquet'], dtype='<U17'), 'vims_git_version': array(['d0050d8de498c8354552cdde540fb3e524454871'], dtype='<U40')}
Post-treatment of the results¶
The BendingTestAnalytical provides the following outputs:
- reaction_forces: a scalar value giving the reaction forces calculated at the
- maximum_dplt: a scalar value giving the maximum displacement of the beam
- location_max_dplt: a scalar value giving the location of the maximum displacement along the beam
- displacement: an array of displacement values
- displacement_grid: an array of sorted coordinates along the beam at which displacement are computed
- moment: an array of moment values
- moment_grid: an array of sorted coordinates along the beam at which
# The value of the maximum displacement along the beam can be obtained like this:
model.get_output_data()["maximum_dplt"]
Out:
array([-4.99948985])
And the outputs plotted like this:
figures = model.plot_results(save=True, show=True)
figures["dplt_vs_dplt_grid"]
Out:
INFO - 16:51:50: Saving plots to /home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/02_integrated_models
INFO - 16:51:51: Plot BendingTestAnalytical_ThreePoints_dplt_vs_dplt_grid.html is saved to /home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/02_integrated_models/BendingTestAnalytical_ThreePoints_dplt_vs_dplt_grid.html
INFO - 16:51:52: Plot BendingTestAnalytical_ThreePoints_moment_vs_moment_grid.html is saved to /home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/02_integrated_models/BendingTestAnalytical_ThreePoints_moment_vs_moment_grid.html
And now, we want to change the support location. By default, it is located at both ends of the beam. It is now positioned at 0.3 times the half length of the beam.
output_data = model.execute({"relative_support_location": array([0.3])})
Note that the reaction force has increased compared to the previous simulation, because the support are closer to the beam center.
print(output_data)
Out:
{'length': array([600.]), 'width': array([30.]), 'height': array([40.]), 'imposed_dplt': array([-5.]), 'relative_support_location': array([0.3]), 'young_modulus': array([210000.]), 'nu_p': array([0.3]), 'cpu_time': array([0.00448251]), 'date': array(['2026-03-26 14:54:14.762732'], dtype='<U26'), 'description': array([''], dtype='<U1'), 'directory_archive_job': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage/BendingTestAnalytical/ThreePoints/2'],
dtype='<U136'), 'directory_archive_root': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/archive/basic_usage'],
dtype='<U100'), 'directory_scratch_job': array([''], dtype='<U1'), 'directory_scratch_root': array(['/home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/model_runs/scratch/basic_usage'],
dtype='<U100'), 'dplt': array([-6.30533927e-18, -1.51499692e-01, -3.02875712e-01, -4.54004384e-01,
-6.04762037e-01, -7.55024997e-01, -9.04669592e-01, -1.05357215e+00,
-1.20160899e+00, -1.34865645e+00, -1.49459084e+00, -1.63928851e+00,
-1.78262577e+00, -1.92447895e+00, -2.06472438e+00, -2.20323838e+00,
-2.33989729e+00, -2.47457742e+00, -2.60715511e+00, -2.73750669e+00,
-2.86550847e+00, -2.99103678e+00, -3.11396796e+00, -3.23417833e+00,
-3.35154421e+00, -3.46594194e+00, -3.57724784e+00, -3.68533823e+00,
-3.79008945e+00, -3.89137781e+00, -3.98907965e+00, -4.08307130e+00,
-4.17322908e+00, -4.25942931e+00, -4.34154833e+00, -4.41946245e+00,
-4.49304802e+00, -4.56218135e+00, -4.62673877e+00, -4.68659661e+00,
-4.74163119e+00, -4.79171884e+00, -4.83673589e+00, -4.87655867e+00,
-4.91106350e+00, -4.94012670e+00, -4.96362461e+00, -4.98143356e+00,
-4.99342986e+00, -4.99948985e+00, -4.99948985e+00, -4.99342986e+00,
-4.98143356e+00, -4.96362461e+00, -4.94012670e+00, -4.91106350e+00,
-4.87655867e+00, -4.83673589e+00, -4.79171884e+00, -4.74163119e+00,
-4.68659661e+00, -4.62673877e+00, -4.56218135e+00, -4.49304802e+00,
-4.41946245e+00, -4.34154833e+00, -4.25942931e+00, -4.17322908e+00,
-4.08307130e+00, -3.98907965e+00, -3.89137781e+00, -3.79008945e+00,
-3.68533823e+00, -3.57724784e+00, -3.46594194e+00, -3.35154421e+00,
-3.23417833e+00, -3.11396796e+00, -2.99103678e+00, -2.86550847e+00,
-2.73750669e+00, -2.60715511e+00, -2.47457742e+00, -2.33989729e+00,
-2.20323838e+00, -2.06472438e+00, -1.92447895e+00, -1.78262577e+00,
-1.63928851e+00, -1.49459084e+00, -1.34865645e+00, -1.20160899e+00,
-1.05357215e+00, -9.04669592e-01, -7.55024997e-01, -6.04762037e-01,
-4.54004384e-01, -3.02875712e-01, -1.51499692e-01, -1.21972744e-19]), 'dplt_at_force_location': array([-4.99948985]), 'dplt_grid': array([120. , 123.63636364, 127.27272727, 130.90909091,
134.54545455, 138.18181818, 141.81818182, 145.45454545,
149.09090909, 152.72727273, 156.36363636, 160. ,
163.63636364, 167.27272727, 170.90909091, 174.54545455,
178.18181818, 181.81818182, 185.45454545, 189.09090909,
192.72727273, 196.36363636, 200. , 203.63636364,
207.27272727, 210.90909091, 214.54545455, 218.18181818,
221.81818182, 225.45454545, 229.09090909, 232.72727273,
236.36363636, 240. , 243.63636364, 247.27272727,
250.90909091, 254.54545455, 258.18181818, 261.81818182,
265.45454545, 269.09090909, 272.72727273, 276.36363636,
280. , 283.63636364, 287.27272727, 290.90909091,
294.54545455, 298.18181818, 301.81818182, 305.45454545,
309.09090909, 312.72727273, 316.36363636, 320. ,
323.63636364, 327.27272727, 330.90909091, 334.54545455,
338.18181818, 341.81818182, 345.45454545, 349.09090909,
352.72727273, 356.36363636, 360. , 363.63636364,
367.27272727, 370.90909091, 374.54545455, 378.18181818,
381.81818182, 385.45454545, 389.09090909, 392.72727273,
396.36363636, 400. , 403.63636364, 407.27272727,
410.90909091, 414.54545455, 418.18181818, 421.81818182,
425.45454545, 429.09090909, 432.72727273, 436.36363636,
440. , 443.63636364, 447.27272727, 450.90909091,
454.54545455, 458.18181818, 461.81818182, 465.45454545,
469.09090909, 472.72727273, 476.36363636, 480. ]), 'error_code': array([0]), 'job_name': array([''], dtype='<U1'), 'load_case': array(['ThreePoints'], dtype='<U11'), 'location_max_dplt': array([298.18181818]), 'machine': array(['IPF7101'], dtype='<U7'), 'maximum_dplt': array([-4.99948985]), 'model': array(['BendingTestAnalytical'], dtype='<U21'), 'moment': array([ 0. , -15555555.55555555, 0. ]), 'moment_grid': array([120., 300., 480.]), 'n_cpus': array([1]), 'persistent_result_files': array([''], dtype='<U1'), 'reaction_forces': array([-172839.50617284]), 'user': array(['sebastien.bocquet'], dtype='<U17'), 'vims_git_version': array(['d0050d8de498c8354552cdde540fb3e524454871'], dtype='<U40')}
The outputs can be plotted again. Note that the displcement curve support now corresponds to +/- 0.3 times the half length of the beam:
figures = model.plot_results(show=True)
figures["dplt_vs_dplt_grid"]
Out:
INFO - 16:51:52: Saving plots to /home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/02_integrated_models
INFO - 16:51:52: Plot BendingTestAnalytical_ThreePoints_dplt_vs_dplt_grid.html is saved to /home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/02_integrated_models/BendingTestAnalytical_ThreePoints_dplt_vs_dplt_grid.html
INFO - 16:51:53: Plot BendingTestAnalytical_ThreePoints_moment_vs_moment_grid.html is saved to /home/sebastien.bocquet/PycharmProjects/vimseo/docs/runnable_examples/02_integrated_models/BendingTestAnalytical_ThreePoints_moment_vs_moment_grid.html
For a model running an external solver, the options of the job
can be modified.
The basic job options are defined in the pydantic model BaseUserJobSettings()
and passed to the model's job executor. To set the number of CPUs to 2,
the following command can be used:
model.run.job_executor.set_options(BaseUserJobSettings(n_cpus=2)).
Total running time of the script: ( 0 minutes 2.608 seconds)
Download Python source code: plot_01_basic_usage.py