Silo#
![]() |
In this example we will demonstrate:
|
from math import inf
from dlubal.api import rfem
# Connect to the RFEM application
with rfem.Application() as rfem_app:
# Create empty new model named 'silo'
rfem_app.create_model(name='silo')
# Cleanup the model
rfem_app.delete_all_objects()
# Define list of model objects to be created
lst = [
# Materials
rfem.structure_core.Material(
no=1,
name="S450 | EN 1993-1-1:2005-05"),
rfem.structure_core.Material(
no=2,
name="Sand, well-graded (SW) | DIN 18196:2011-05"),
rfem.structure_core.Material(
no=3,
name="Dry air | --"),
rfem.structure_core.Material(
no=4,
name="S450 | EN 1993-1-1:2005-05"),
# Sections
rfem.structure_core.Section(
no=1,
material=1,
name="IPN 300"),
rfem.structure_core.Section(
no=2,
material=1,
name="UPE 200"),
rfem.structure_core.Section(
no=3,
material=1,
name="MSH KHP 88.9x3.6"),
rfem.structure_core.Section(
no=4,
material=1,
name="MSH KHP 88.9x3.6"),
rfem.structure_core.Section(
no=5,
material=1,
name="LU 0.3/0.2/0.01/0.01/0"),
# Thicknesses
rfem.structure_core.Thickness(
no=1,
material=4,
uniform_thickness=0.01,
assigned_to_surfaces=[2, 3, 4, 5]),
rfem.structure_core.Thickness(
no=2,
material=1,
uniform_thickness=0.008,
assigned_to_surfaces=[1, 6, 7, 8, 9]),
rfem.structure_core.Thickness(
no=3,
material=4,
uniform_thickness=0.005,
assigned_to_surfaces=[11]),
# Nodes
rfem.structure_core.Node(
no=1,
coordinate_1=0.0,
coordinate_2=0.0,
coordinate_3=0.0),
rfem.structure_core.Node(
no=2,
coordinate_1=3.0,
coordinate_2=0.0,
coordinate_3=0.0),
rfem.structure_core.Node(
no=3,
coordinate_1=3.0,
coordinate_2=3.0,
coordinate_3=0.0),
rfem.structure_core.Node(
no=4,
coordinate_1=0.0,
coordinate_2=3.0,
coordinate_3=0.0),
rfem.structure_core.Node(
no=5,
coordinate_1=0.0,
coordinate_2=0.0,
coordinate_3=-3.0),
rfem.structure_core.Node(
no=6,
coordinate_1=1.5,
coordinate_2=0.0,
coordinate_3=-3.0),
rfem.structure_core.Node(
no=7,
coordinate_1=3.0,
coordinate_2=0.0,
coordinate_3=-3.0),
rfem.structure_core.Node(
no=8,
coordinate_1=3.0,
coordinate_2=1.5,
coordinate_3=-3.0),
rfem.structure_core.Node(
no=9,
coordinate_1=3.0,
coordinate_2=3.0,
coordinate_3=-3.0),
rfem.structure_core.Node(
no=10,
coordinate_1=1.5,
coordinate_2=3.0,
coordinate_3=-3.0),
rfem.structure_core.Node(
no=11,
coordinate_1=0.0,
coordinate_2=3.0,
coordinate_3=-3.0),
rfem.structure_core.Node(
no=12,
coordinate_1=0.0,
coordinate_2=1.5,
coordinate_3=-3.0),
rfem.structure_core.Node(
no=13,
coordinate_1=0.0,
coordinate_2=0.0,
coordinate_3=-6.0),
rfem.structure_core.Node(
no=14,
coordinate_1=1.5,
coordinate_2=0.0,
coordinate_3=-6.0),
rfem.structure_core.Node(
no=15,
coordinate_1=3.0,
coordinate_2=0.0,
coordinate_3=-6.0),
rfem.structure_core.Node(
no=16,
coordinate_1=3.0,
coordinate_2=1.5,
coordinate_3=-6.0),
rfem.structure_core.Node(
no=17,
coordinate_1=3.0,
coordinate_2=3.0,
coordinate_3=-6.0),
rfem.structure_core.Node(
no=18,
coordinate_1=1.5,
coordinate_2=3.0,
coordinate_3=-6.0),
rfem.structure_core.Node(
no=19,
coordinate_1=0.0,
coordinate_2=3.0,
coordinate_3=-6.0),
rfem.structure_core.Node(
no=20,
coordinate_1=0.0,
coordinate_2=1.5,
coordinate_3=-6.0),
rfem.structure_core.Node(
no=21,
coordinate_1=0.75,
coordinate_2=0.75,
coordinate_3=-4.0),
rfem.structure_core.Node(
no=22,
coordinate_1=2.25,
coordinate_2=0.75,
coordinate_3=-4.0),
rfem.structure_core.Node(
no=23,
coordinate_1=2.25,
coordinate_2=2.25,
coordinate_3=-4.0),
rfem.structure_core.Node(
no=24,
coordinate_1=0.75,
coordinate_2=2.25,
coordinate_3=-4.0),
rfem.structure_core.Node(
no=25,
coordinate_1=0.0,
coordinate_2=0.0,
coordinate_3=-12.0),
rfem.structure_core.Node(
no=26,
coordinate_1=3.0,
coordinate_2=0.0,
coordinate_3=-12.0),
rfem.structure_core.Node(
no=27,
coordinate_1=3.0,
coordinate_2=3.0,
coordinate_3=-12.0),
rfem.structure_core.Node(
no=28,
coordinate_1=0.0,
coordinate_2=3.0,
coordinate_3=-12.0),
# Lines
rfem.structure_core.Line(
no=1,
definition_nodes=[1, 5]),
rfem.structure_core.Line(
no=2,
definition_nodes=[2, 7]),
rfem.structure_core.Line(
no=3,
definition_nodes=[3, 9]),
rfem.structure_core.Line(
no=4,
definition_nodes=[4, 11]),
rfem.structure_core.Line(
no=5,
definition_nodes=[5, 13]),
rfem.structure_core.Line(
no=6,
definition_nodes=[7, 15]),
rfem.structure_core.Line(
no=7,
definition_nodes=[9, 17]),
rfem.structure_core.Line(
no=8,
definition_nodes=[11, 19]),
rfem.structure_core.Line(
no=9,
definition_nodes=[13, 14]),
rfem.structure_core.Line(
no=10,
definition_nodes=[14, 15]),
rfem.structure_core.Line(
no=11,
definition_nodes=[15, 16]),
rfem.structure_core.Line(
no=12,
definition_nodes=[16, 17]),
rfem.structure_core.Line(
no=13,
definition_nodes=[17, 18]),
rfem.structure_core.Line(
no=14,
definition_nodes=[18, 19]),
rfem.structure_core.Line(
no=15,
definition_nodes=[19, 20]),
rfem.structure_core.Line(
no=16,
definition_nodes=[20, 13]),
rfem.structure_core.Line(
no=17,
definition_nodes=[1, 6]),
rfem.structure_core.Line(
no=18,
definition_nodes=[2, 6]),
rfem.structure_core.Line(
no=19,
definition_nodes=[2, 8]),
rfem.structure_core.Line(
no=20,
definition_nodes=[3, 8]),
rfem.structure_core.Line(
no=21,
definition_nodes=[3, 10]),
rfem.structure_core.Line(
no=22,
definition_nodes=[4, 10]),
rfem.structure_core.Line(
no=23,
definition_nodes=[4, 12]),
rfem.structure_core.Line(
no=24,
definition_nodes=[1, 12]),
rfem.structure_core.Line(
no=25,
definition_nodes=[5, 14]),
rfem.structure_core.Line(
no=26,
definition_nodes=[7, 14]),
rfem.structure_core.Line(
no=27,
definition_nodes=[7, 16]),
rfem.structure_core.Line(
no=28,
definition_nodes=[9, 16]),
rfem.structure_core.Line(
no=29,
definition_nodes=[9, 18]),
rfem.structure_core.Line(
no=30,
definition_nodes=[11, 18]),
rfem.structure_core.Line(
no=31,
definition_nodes=[11, 20]),
rfem.structure_core.Line(
no=32,
definition_nodes=[5, 20]),
rfem.structure_core.Line(
no=33,
definition_nodes=[5, 6]),
rfem.structure_core.Line(
no=34,
definition_nodes=[6, 7]),
rfem.structure_core.Line(
no=35,
definition_nodes=[7, 8]),
rfem.structure_core.Line(
no=36,
definition_nodes=[8, 9]),
rfem.structure_core.Line(
no=37,
definition_nodes=[9, 10]),
rfem.structure_core.Line(
no=38,
definition_nodes=[10, 11]),
rfem.structure_core.Line(
no=39,
definition_nodes=[11, 12]),
rfem.structure_core.Line(
no=40,
definition_nodes=[12, 5]),
rfem.structure_core.Line(
no=41,
definition_nodes=[21, 22]),
rfem.structure_core.Line(
no=42,
definition_nodes=[22, 23]),
rfem.structure_core.Line(
no=43,
definition_nodes=[23, 24]),
rfem.structure_core.Line(
no=44,
definition_nodes=[24, 21]),
rfem.structure_core.Line(
no=45,
definition_nodes=[13, 21]),
rfem.structure_core.Line(
no=46,
definition_nodes=[15, 22]),
rfem.structure_core.Line(
no=47,
definition_nodes=[17, 23]),
rfem.structure_core.Line(
no=48,
definition_nodes=[19, 24]),
rfem.structure_core.Line(
no=49,
definition_nodes=[13, 25]),
rfem.structure_core.Line(
no=50,
definition_nodes=[15, 26]),
rfem.structure_core.Line(
no=51,
definition_nodes=[17, 27]),
rfem.structure_core.Line(
no=52,
definition_nodes=[19, 28]),
rfem.structure_core.Line(
no=53,
definition_nodes=[25, 26]),
rfem.structure_core.Line(
no=54,
definition_nodes=[26, 27]),
rfem.structure_core.Line(
no=55,
definition_nodes=[27, 28]),
rfem.structure_core.Line(
no=56,
definition_nodes=[28, 25]),
# Surfaces
rfem.structure_core.Surface(
no=1,
boundary_lines=[41, 42, 43, 44]),
rfem.structure_core.Surface(
no=2,
boundary_lines=[45, 41, 46, 10, 9]),
rfem.structure_core.Surface(
no=3,
boundary_lines=[46, 42, 47, 12, 11]),
rfem.structure_core.Surface(
no=4,
boundary_lines=[47, 43, 48, 14, 13]),
rfem.structure_core.Surface(
no=5,
boundary_lines=[48, 44, 45, 16, 15]),
rfem.structure_core.Surface(
no=6,
boundary_lines=[9, 10, 50, 53, 49]),
rfem.structure_core.Surface(
no=7,
boundary_lines=[11, 12, 51, 54, 50]),
rfem.structure_core.Surface(
no=8,
boundary_lines=[13, 14, 52, 55, 51]),
rfem.structure_core.Surface(
no=9,
boundary_lines=[15, 16, 49, 56, 52]),
rfem.structure_core.Surface(
no=10,
boundary_lines=[9, 10, 11, 12, 13, 14, 15, 16]),
rfem.structure_core.Surface(
no=11,
boundary_lines=[53, 54, 55, 56]),
# Beams
rfem.structure_core.Member(
no=1,
line=1,
member_hinge_start=1,
member_hinge_end=2,
section_start=1),
rfem.structure_core.Member(
no=2,
line=2,
member_hinge_start=1,
member_hinge_end=2,
section_start=1),
rfem.structure_core.Member(
no=3,
line=3,
member_hinge_start=1,
member_hinge_end=2,
section_start=1),
rfem.structure_core.Member(
no=4,
line=4,
member_hinge_start=1,
member_hinge_end=2,
section_start=1),
rfem.structure_core.Member(
no=5,
line=5,
member_hinge_start=1,
member_hinge_end=2,
section_start=1),
rfem.structure_core.Member(
no=6,
line=6,
member_hinge_start=1,
member_hinge_end=2,
section_start=1),
rfem.structure_core.Member(
no=7,
line=7,
member_hinge_start=1,
member_hinge_end=2,
section_start=1),
rfem.structure_core.Member(
no=8,
line=8,
member_hinge_start=1,
member_hinge_end=2,
section_start=1),
# Ribs
rfem.structure_core.Member(
no=9,
type=rfem.structure_core.Member.TYPE_RIB,
section_start=2,
line=9),
rfem.structure_core.Member(
no=10,
type=rfem.structure_core.Member.TYPE_RIB,
section_start=2,
line=10),
rfem.structure_core.Member(
no=11,
type=rfem.structure_core.Member.TYPE_RIB,
section_start=2,
line=11),
rfem.structure_core.Member(
no=12,
type=rfem.structure_core.Member.TYPE_RIB,
section_start=2,
line=12),
rfem.structure_core.Member(
no=13,
type=rfem.structure_core.Member.TYPE_RIB,
section_start=2,
line=13),
rfem.structure_core.Member(
no=14,
type=rfem.structure_core.Member.TYPE_RIB,
section_start=2,
line=14),
rfem.structure_core.Member(
no=15,
type=rfem.structure_core.Member.TYPE_RIB,
section_start=2,
line=15),
rfem.structure_core.Member(
no=16,
type=rfem.structure_core.Member.TYPE_RIB,
section_start=2,
line=16),
# Beams
rfem.structure_core.Member(
no=17,
line=17,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=18,
line=18,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=19,
line=19,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=20,
line=20,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=21,
line=21,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=22,
line=22,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=23,
line=23,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=24,
line=24,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=25,
line=25,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=26,
line=26,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=27,
line=27,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=28,
line=28,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=29,
line=29,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=30,
line=30,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=31,
line=31,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=32,
line=32,
member_hinge_start=1,
member_hinge_end=2,
section_start=3),
rfem.structure_core.Member(
no=33,
line=33,
section_start=4,
member_hinge_start=1),
rfem.structure_core.Member(
no=34,
line=34,
section_start=4,
member_hinge_end=2),
rfem.structure_core.Member(
no=35,
line=35,
section_start=4,
member_hinge_start=1),
rfem.structure_core.Member(
no=36,
line=36,
section_start=4,
member_hinge_end=2),
rfem.structure_core.Member(
no=37,
line=37,
section_start=4,
member_hinge_start=1),
rfem.structure_core.Member(
no=38,
line=38,
section_start=4,
member_hinge_end=2),
rfem.structure_core.Member(
no=39,
line=39,
section_start=4,
member_hinge_start=1),
rfem.structure_core.Member(
no=40,
line=40,
section_start=5,
member_hinge_end=2),
rfem.structure_core.Member(
no=41,
line=49,
section_start=5,
rotation_angle=1.57079632679487),
rfem.structure_core.Member(
no=42,
line=50,
section_start=5),
rfem.structure_core.Member(
no=43,
line=51,
section_start=5,
rotation_angle=-1.57079632679487),
rfem.structure_core.Member(
no=44,
line=52,
section_start=5,
rotation_angle=3.14159265358974),
# Solid
rfem.structure_core.Solid(
no=1,
type=rfem.structure_core.Solid.TYPE_STANDARD,
material=2,
boundary_surfaces=[1, 2, 3, 4, 5, 10]),
# Nodal Support
rfem.types_for_nodes.NodalSupport(
no=1,
nodes=[1, 2, 3, 4],
spring_x=700000,
spring_y=800000,
spring_z=5000000),
# Member Hinge
rfem.types_for_members.MemberHinge(
no=1,
moment_release_mt=28000,
axial_release_n=inf,
axial_release_vy=inf,
axial_release_vz=inf),
rfem.types_for_members.MemberHinge(
no=2,
moment_release_mt=29000,
axial_release_n=inf,
axial_release_vy=inf,
axial_release_vz=inf,
moment_release_mz=inf),
# Static Analysis Settings
rfem.loading.StaticAnalysisSettings(
no=1),
rfem.loading.StaticAnalysisSettings(
no=2,
analysis_type=rfem.loading.StaticAnalysisSettings.ANALYSIS_TYPE_SECOND_ORDER_P_DELTA,
number_of_load_increments=2),
rfem.loading.StaticAnalysisSettings(
no=3,
analysis_type=rfem.loading.StaticAnalysisSettings.ANALYSIS_TYPE_LARGE_DEFORMATIONS,
number_of_load_increments=10),
# Load Cases
rfem.loading.LoadCase(
no=1,
name="Self weight",
static_analysis_settings=1),
rfem.loading.LoadCase(
no=2,
name="Live load",
static_analysis_settings=2,
action_category=rfem.loading.LoadCase.ACTION_CATEGORY_PERMANENT_IMPOSED_GQ),
rfem.loading.LoadCase(
no=3,
name="Stability - linear",
static_analysis_settings=1,
action_category=rfem.loading.LoadCase.ACTION_CATEGORY_PERMANENT_IMPOSED_GQ,
self_weight_active=True),
]
# Create all objects related to loading in active model
rfem_app.create_object_list(lst)
# Connection is terminated automatically at the end of the scope manager or at the end of the script.
# If the connection needs to be terminated separately, use rfem_app.close_connection().
rfem_app.calculate_all(skip_warnings=True)
using rfem = Dlubal.Api.Rfem;
using Google.Protobuf;
public static class silo
{
public static async Task SiloModel(Application rfem_app)
{
rfem.ApplicationInfo info = await rfem_app.get_application_info();
Console.WriteLine("\nVersion:\n" + info.Name + "\n");
await rfem_app.close_all_models(saveChanges: false);
// Create a new model
await rfem_app.create_model("Silo");
await rfem_app.delete_all_objects();
var structure = new List<IMessage>
{
new rfem.StructureCore.Node{
No = 1,
Coordinate1 = 0,
Coordinate2 = 0,
Coordinate3 = 0
},
new rfem.StructureCore.Node{
No = 2,
Coordinate1 = 3,
Coordinate2 = 0,
Coordinate3 = 0
},
new rfem.StructureCore.Node{
No = 3,
Coordinate1 = 3,
Coordinate2 = 3,
Coordinate3 = 0
},
new rfem.StructureCore.Node{
No = 4,
Coordinate1 = 0,
Coordinate2 = 3,
Coordinate3 = 0
},
new rfem.StructureCore.Node{
No = 5,
Coordinate1 = 0,
Coordinate2 = 0,
Coordinate3 = -3
},
new rfem.StructureCore.Node{
No = 6,
Coordinate1 = 1.5,
Coordinate2 = 0,
Coordinate3 = -3
},
new rfem.StructureCore.Node{
No = 7,
Coordinate1 = 3,
Coordinate2 = 0,
Coordinate3 = -3
},
new rfem.StructureCore.Node{
No = 8,
Coordinate1 = 3,
Coordinate2 = 1.5,
Coordinate3 = -3
},
new rfem.StructureCore.Node{
No = 9,
Coordinate1 = 3,
Coordinate2 = 3,
Coordinate3 = -3
},
new rfem.StructureCore.Node{
No = 10,
Coordinate1 = 1.5,
Coordinate2 = 3,
Coordinate3 = -3
},
new rfem.StructureCore.Node{
No = 11,
Coordinate1 = 0,
Coordinate2 = 3,
Coordinate3 = -3
},
new rfem.StructureCore.Node{
No = 12,
Coordinate1 = 0,
Coordinate2 = 1.5,
Coordinate3 = -3
},
new rfem.StructureCore.Node{
No = 13,
Coordinate1 = 0,
Coordinate2 = 0,
Coordinate3 = -6
},
new rfem.StructureCore.Node{
No = 14,
Coordinate1 = 1.5,
Coordinate2 = 0,
Coordinate3 = -6
},
new rfem.StructureCore.Node{
No = 15,
Coordinate1 = 3,
Coordinate2 = 0,
Coordinate3 = -6
},
new rfem.StructureCore.Node{
No = 16,
Coordinate1 = 3,
Coordinate2 = 1.5,
Coordinate3 = -6
},
new rfem.StructureCore.Node{
No = 17,
Coordinate1 = 3,
Coordinate2 = 3,
Coordinate3 = -6
},
new rfem.StructureCore.Node{
No = 18,
Coordinate1 = 1.5,
Coordinate2 = 3,
Coordinate3 = -6
},
new rfem.StructureCore.Node{
No = 19,
Coordinate1 = 0,
Coordinate2 = 3,
Coordinate3 = -6
},
new rfem.StructureCore.Node{
No = 20,
Coordinate1 = 0,
Coordinate2 = 1.5,
Coordinate3 = -6
},
new rfem.StructureCore.Node{
No = 21,
Coordinate1 = 0.75,
Coordinate2 = 0.75,
Coordinate3 = -4
},
new rfem.StructureCore.Node{
No = 22,
Coordinate1 = 2.25,
Coordinate2 = 0.75,
Coordinate3 = -4
},
new rfem.StructureCore.Node{
No = 23,
Coordinate1 = 2.25,
Coordinate2 = 2.25,
Coordinate3 = -4
},
new rfem.StructureCore.Node{
No = 24,
Coordinate1 = 0.75,
Coordinate2 = 2.25,
Coordinate3 = -4
},
new rfem.StructureCore.Node{
No = 25,
Coordinate1 = 0,
Coordinate2 = 0,
Coordinate3 = -12
},
new rfem.StructureCore.Node{
No = 26,
Coordinate1 = 3,
Coordinate2 = 0,
Coordinate3 = -12
},
new rfem.StructureCore.Node{
No = 27,
Coordinate1 = 3,
Coordinate2 = 3,
Coordinate3 = -12
},
new rfem.StructureCore.Node{
No = 28,
Coordinate1 = 0,
Coordinate2 = 3,
Coordinate3 = -12
},
new rfem.StructureCore.Line{
No = 1,
DefinitionNodes = { 1, 5 }
},
new rfem.StructureCore.Line{
No = 2,
DefinitionNodes = { 2, 7 }
},
new rfem.StructureCore.Line{
No = 3,
DefinitionNodes = { 3, 9 }
},
new rfem.StructureCore.Line{
No = 4,
DefinitionNodes = { 4, 11 }
},
new rfem.StructureCore.Line{
No = 5,
DefinitionNodes = { 5, 13 }
},
new rfem.StructureCore.Line{
No = 6,
DefinitionNodes = { 7, 15 }
},
new rfem.StructureCore.Line{
No = 7,
DefinitionNodes = { 9, 17 }
},
new rfem.StructureCore.Line{
No = 8,
DefinitionNodes = { 11, 19 }
},
new rfem.StructureCore.Line{
No = 9,
DefinitionNodes = { 13, 14 }
},
new rfem.StructureCore.Line{
No = 10,
DefinitionNodes = { 14, 15 }
},
new rfem.StructureCore.Line{
No = 11,
DefinitionNodes = { 15, 16 }
},
new rfem.StructureCore.Line{
No = 12,
DefinitionNodes = { 16, 17 }
},
new rfem.StructureCore.Line{
No = 13,
DefinitionNodes = { 17, 18 }
},
new rfem.StructureCore.Line{
No = 14,
DefinitionNodes = { 18, 19 }
},
new rfem.StructureCore.Line{
No = 15,
DefinitionNodes = { 19, 20 }
},
new rfem.StructureCore.Line{
No = 16,
DefinitionNodes = { 20, 13 }
},
new rfem.StructureCore.Line{
No = 17,
DefinitionNodes = { 1, 6 }
},
new rfem.StructureCore.Line{
No = 18,
DefinitionNodes = { 2, 6 }
},
new rfem.StructureCore.Line{
No = 19,
DefinitionNodes = { 2, 8 }
},
new rfem.StructureCore.Line{
No = 20,
DefinitionNodes = { 3, 8 }
},
new rfem.StructureCore.Line{
No = 21,
DefinitionNodes = { 3, 10 }
},
new rfem.StructureCore.Line{
No = 22,
DefinitionNodes = { 4, 10 }
},
new rfem.StructureCore.Line{
No = 23,
DefinitionNodes = { 4, 12 }
},
new rfem.StructureCore.Line{
No = 24,
DefinitionNodes = { 1, 12 }
},
new rfem.StructureCore.Line{
No = 25,
DefinitionNodes = { 5, 14 }
},
new rfem.StructureCore.Line{
No = 26,
DefinitionNodes = { 7, 14 }
},
new rfem.StructureCore.Line{
No = 27,
DefinitionNodes = { 7, 16 }
},
new rfem.StructureCore.Line{
No = 28,
DefinitionNodes = { 9, 16 }
},
new rfem.StructureCore.Line{
No = 29,
DefinitionNodes = { 9, 18 }
},
new rfem.StructureCore.Line{
No = 30,
DefinitionNodes = { 11, 18 }
},
new rfem.StructureCore.Line{
No = 31,
DefinitionNodes = { 11, 20 }
},
new rfem.StructureCore.Line{
No = 32,
DefinitionNodes = { 5, 20 }
},
new rfem.StructureCore.Line{
No = 33,
DefinitionNodes = { 5, 6 }
},
new rfem.StructureCore.Line{
No = 34,
DefinitionNodes = { 6, 7 }
},
new rfem.StructureCore.Line{
No = 35,
DefinitionNodes = { 7, 8 }
},
new rfem.StructureCore.Line{
No = 36,
DefinitionNodes = { 8, 9 }
},
new rfem.StructureCore.Line{
No = 37,
DefinitionNodes = { 9, 10 }
},
new rfem.StructureCore.Line{
No = 38,
DefinitionNodes = { 10, 11 }
},
new rfem.StructureCore.Line{
No = 39,
DefinitionNodes = { 11, 12 }
},
new rfem.StructureCore.Line{
No = 40,
DefinitionNodes = { 12, 5 }
},
new rfem.StructureCore.Line{
No = 41,
DefinitionNodes = { 21, 22 }
},
new rfem.StructureCore.Line{
No = 42,
DefinitionNodes = { 22, 23 }
},
new rfem.StructureCore.Line{
No = 43,
DefinitionNodes = { 23, 24 }
},
new rfem.StructureCore.Line{
No = 44,
DefinitionNodes = { 24, 21 }
},
new rfem.StructureCore.Line{
No = 45,
DefinitionNodes = { 13, 21 }
},
new rfem.StructureCore.Line{
No = 46,
DefinitionNodes = { 15, 22 }
},
new rfem.StructureCore.Line{
No = 47,
DefinitionNodes = { 17, 23 }
},
new rfem.StructureCore.Line{
No = 48,
DefinitionNodes = { 19, 24 }
},
new rfem.StructureCore.Line{
No = 49,
DefinitionNodes = { 13, 25 }
},
new rfem.StructureCore.Line{
No = 50,
DefinitionNodes = { 15, 26 }
},
new rfem.StructureCore.Line{
No = 51,
DefinitionNodes = { 17, 27 }
},
new rfem.StructureCore.Line{
No = 52,
DefinitionNodes = { 19, 28 }
},
new rfem.StructureCore.Line{
No = 53,
DefinitionNodes = { 25, 26 }
},
new rfem.StructureCore.Line{
No = 54,
DefinitionNodes = { 26, 27 }
},
new rfem.StructureCore.Line{
No = 55,
DefinitionNodes = { 27, 28 }
},
new rfem.StructureCore.Line{
No = 56,
DefinitionNodes = { 28, 25 }
},
new rfem.StructureCore.Material {
No = 1,
Name = "S450 | EN 1993-1-1:2005-05"
},
new rfem.StructureCore.Material {
No = 2,
Name = "Sand, well-graded (SW) | DIN 18196:2011-05"
},
new rfem.StructureCore.Material {
No = 3,
Name = "Dry air | --"
},
new rfem.StructureCore.Material {
No = 4,
Name = "S450 | EN 1993-1-1:2005-05"
},
new rfem.StructureCore.Section {
No = 1,
Material = 1,
Name = "IPN 300"
},
new rfem.StructureCore.Section {
No = 2,
Material = 1,
Name = "UPE 200"
},
new rfem.StructureCore.Section {
No = 3,
Material = 1,
Name = "MSH KHP 88.9x3.6"
},
new rfem.StructureCore.Section {
No = 4,
Material = 1,
Name = "MSH KHP 88.9x3.6"
},
new rfem.StructureCore.Section {
No = 5,
Material = 1,
Name = "LU 0.3/0.2/0.01/0.01/0"
},
new rfem.StructureCore.Thickness {
No = 1,
Material = 4,
UniformThickness = 0.01,
AssignedToSurfaces = { 2, 3, 4, 5 }
},
new rfem.StructureCore.Thickness {
No = 2,
Material = 1,
UniformThickness = 0.008,
AssignedToSurfaces = { 1, 6, 7, 8, 9 }
},
new rfem.StructureCore.Thickness {
No = 3,
Material = 4,
UniformThickness = 0.005,
AssignedToSurfaces = { 11 }
},
new rfem.StructureCore.Surface {
No = 1,
BoundaryLines = { 41, 42, 43, 44 }
},
new rfem.StructureCore.Surface {
No = 2,
BoundaryLines = { 45, 41, 46, 10, 9 }
},
new rfem.StructureCore.Surface {
No = 3,
BoundaryLines = { 46, 42, 47, 12, 11 }
},
new rfem.StructureCore.Surface {
No = 4,
BoundaryLines = { 47, 43, 48, 14, 13 }
},
new rfem.StructureCore.Surface {
No = 5,
BoundaryLines = { 48, 44, 45, 16, 15 }
},
new rfem.StructureCore.Surface {
No = 6,
BoundaryLines = { 9, 10, 50, 53, 49 }
},
new rfem.StructureCore.Surface {
No = 7,
BoundaryLines = { 11, 12, 51, 54, 50 }
},
new rfem.StructureCore.Surface {
No = 8,
BoundaryLines = { 13, 14, 52, 55, 51 }
},
new rfem.StructureCore.Surface {
No = 9,
BoundaryLines = { 15, 16, 49, 56, 51 }
},
new rfem.StructureCore.Surface {
No = 10,
BoundaryLines = { 9, 10, 11, 12, 13, 14, 15, 16 }
},
new rfem.StructureCore.Surface {
No = 11,
BoundaryLines = { 53, 54, 55, 56 }
},
new rfem.StructureCore.Member {
No = 1,
Line = 1,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 1
},
new rfem.StructureCore.Member {
No = 2,
Line = 2,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 1
},
new rfem.StructureCore.Member {
No = 3,
Line = 3,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 1
},
new rfem.StructureCore.Member {
No = 4,
Line = 4,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 1
},
new rfem.StructureCore.Member {
No = 5,
Line = 5,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 1
},
new rfem.StructureCore.Member {
No = 6,
Line = 6,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 1
},
new rfem.StructureCore.Member {
No = 7,
Line = 7,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 1
},
new rfem.StructureCore.Member {
No = 8,
Line = 8,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 1
},
new rfem.StructureCore.Member {
No = 9,
Type = rfem.StructureCore.Member.Types.Type.Rib,
SectionStart = 2,
Line = 9
},
new rfem.StructureCore.Member {
No = 10,
Type = rfem.StructureCore.Member.Types.Type.Rib,
SectionStart = 2,
Line = 10
},
new rfem.StructureCore.Member {
No = 11,
Type = rfem.StructureCore.Member.Types.Type.Rib,
SectionStart = 2,
Line = 11
},
new rfem.StructureCore.Member {
No = 12,
Type = rfem.StructureCore.Member.Types.Type.Rib,
SectionStart = 2,
Line = 12
},
new rfem.StructureCore.Member {
No = 13,
Type = rfem.StructureCore.Member.Types.Type.Rib,
SectionStart = 2,
Line = 13
},
new rfem.StructureCore.Member {
No = 14,
Type = rfem.StructureCore.Member.Types.Type.Rib,
SectionStart = 2,
Line = 14
},
new rfem.StructureCore.Member {
No = 15,
Type = rfem.StructureCore.Member.Types.Type.Rib,
SectionStart = 2,
Line = 15
},
new rfem.StructureCore.Member {
No = 16,
Type = rfem.StructureCore.Member.Types.Type.Rib,
SectionStart = 2,
Line = 16
},
new rfem.StructureCore.Member {
No = 17,
Line = 17,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 18,
Line = 18,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 19,
Line = 19,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 20,
Line = 20,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 21,
Line = 21,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 22,
Line = 22,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 23,
Line = 23,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 24,
Line = 24,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 25,
Line = 25,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 26,
Line = 26,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 27,
Line = 27,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 28,
Line = 28,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 29,
Line = 29,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 30,
Line = 30,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 31,
Line = 31,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 32,
Line = 32,
MemberHingeStart = 1,
MemberHingeEnd = 2,
SectionStart = 3
},
new rfem.StructureCore.Member {
No = 33,
Line = 33,
MemberHingeStart = 1,
SectionStart = 4
},
new rfem.StructureCore.Member {
No = 34,
Line = 34,
MemberHingeEnd = 2,
SectionStart = 4
},
new rfem.StructureCore.Member {
No = 35,
Line = 35,
MemberHingeStart = 1,
SectionStart = 4
},
new rfem.StructureCore.Member {
No = 36,
Line = 36,
MemberHingeEnd = 2,
SectionStart = 4
},
new rfem.StructureCore.Member {
No = 37,
Line = 37,
MemberHingeStart = 1,
SectionStart = 4
},
new rfem.StructureCore.Member {
No = 38,
Line = 38,
MemberHingeEnd = 2,
SectionStart = 4
},
new rfem.StructureCore.Member {
No = 39,
Line = 39,
MemberHingeStart = 1,
SectionStart = 4
},
new rfem.StructureCore.Member {
No = 40,
Line = 40,
MemberHingeEnd = 2,
SectionStart = 5
},
new rfem.StructureCore.Member {
No = 41,
Line = 49,
RotationAngle = 1.570796,
SectionStart = 5
},
new rfem.StructureCore.Member {
No = 42,
Line = 50,
SectionStart = 5
},
new rfem.StructureCore.Member {
No = 43,
Line = 51,
SectionStart = 5,
RotationAngle = 1.570796
},
new rfem.StructureCore.Member {
No = 44,
Line = 52,
RotationAngle = 3.1415926,
SectionStart = 5
},
new rfem.StructureCore.Solid {
No = 1,
Type = rfem.StructureCore.Solid.Types.Type.Standard,
Material = 2,
BoundarySurfaces = { 1, 2, 3, 4, 5, 10 }
},
new rfem.TypesForNodes.NodalSupport {
No = 1,
Nodes = { 1, 2, 3, 4 },
SpringX = 700000,
SpringY = 800000,
SpringZ = 5000000
},
new rfem.TypesForMembers.MemberHinge {
No = 1,
MomentReleaseMt = 28000,
AxialReleaseN = double.PositiveInfinity,
AxialReleaseVy = double.PositiveInfinity,
AxialReleaseVz = double.PositiveInfinity,
MomentReleaseMz = double.PositiveInfinity
},
new rfem.TypesForMembers.MemberHinge {
No = 2,
MomentReleaseMt = 29000,
AxialReleaseN = double.PositiveInfinity,
AxialReleaseVy = double.PositiveInfinity,
AxialReleaseVz = double.PositiveInfinity,
MomentReleaseMz = double.PositiveInfinity
},
};
var loading = new List<IMessage>
{
new rfem.Loading.StaticAnalysisSettings {
No = 1
},
new rfem.Loading.StaticAnalysisSettings {
No = 2,
AnalysisType = rfem.Loading.StaticAnalysisSettings.Types.AnalysisType.SecondOrderPDelta,
NumberOfLoadIncrements = 2
},
new rfem.Loading.StaticAnalysisSettings {
No = 3,
AnalysisType = rfem.Loading.StaticAnalysisSettings.Types.AnalysisType.LargeDeformations,
NumberOfLoadIncrements = 10
},
new rfem.Loading.LoadCase {
No = 1,
Name = "Self weight",
StaticAnalysisSettings = 1
},
new rfem.Loading.LoadCase {
No = 2,
Name = "Live load",
StaticAnalysisSettings = 2,
ActionCategory = rfem.Loading.LoadCase.Types.ActionCategory.PermanentImposedGq
},
new rfem.Loading.LoadCase {
No = 3,
Name = "Stability - linear",
StaticAnalysisSettings = 1,
ActionCategory = rfem.Loading.LoadCase.Types.ActionCategory.PermanentImposedGq,
SelfWeightActive = true
}
};
await rfem_app.create_object_list(structure);
await rfem_app.create_object_list(loading);
await rfem_app.calculate_all(skipWarnings: true);
}
}