Demonstration of 3D Frame Library for 3d structural analysis

Steps for a simple structural analysis of a frame using 3D Frame Library in Visual Studio

In this example, we will call the 3D Frame Library from a Visual Studio project and carry out a structural analysis on a simple frame. We will first provide the geometry, material properties and loads and afterwards call the corresponding routine in order to obtain the results.

Structural analysis of a 3D concrete Frame using the library

Sample frame with rigid offsets to analyze with 3D Frame Library (Metric units)

We will first create a new C# Windows Application project from Visual Studio and follow the following steps to carry out the structural analysis according the data provided. Please notice that we could use any other .NET compatible language and take the corresponding steps. The source code of all examples can be downloaded here. This example corresponds to the Example 6.

Add a reference to 3D Frame Library

A reference to Frame 3D Library can easily be added by right clicking on the application project and selecting Add --> Reference.

Adding a reference to Frame3D Library

Providing the data to 3D Frame Library using C#

New model definition                

Model Model = new Model();

Definition of materials

//Create a new material for concrete
Material matConcrete = new Material();
matConcrete.Name = "Concrete";//Material name
matConcrete.Density = 2.5;//density in mass units/m3, for example tn/m3
matConcrete.G = 11538461;//shear modulus
matConcrete.E = 30000000;//elasticity modulus

Definition of cross section

//Create a new beam section of dimensions 30cmx70xm
FrameElementSection secBeam30_70 = new FrameElementSection();
secBeam30_70.Name = "Beam30/70";//section name
secBeam30_70.A = 0.3 * 0.7;//section area
secBeam30_70.Iy = 0.3 * 0.7 * 0.7 * 0.7 / 12;//inertia moment about local y axis
secBeam30_70.Iz = 0.8 * 0.3 * 0.3 * 0.3 / 12;//inertia moment about local z axis
secBeam30_70.It = 4.347e-3;//torsional constant
secBeam30_70.h = 0.70;//section height

//Create a new column section of dimensions 50cmx50xm           
FrameElementSection secColumn50_50 = new FrameElementSection();
secColumn50_50.Name = "Column50/50";  //section name        
secColumn50_50.A = 0.5 * 0.5;//section area
secColumn50_50.Iy = 0.5 * 0.5 * 0.5 * 0.5 / 12;//inertia moment about local y axis
secColumn50_50.Iz = 0.5 * 0.5 * 0.5 * 0.5 / 12;//inertia moment about local z axis
secColumn50_50.It = 8.8125e-3;
secColumn50_50.h = 0.50;//section height

Definition of model geometry and loads

//Create node n1 
Frame3D.SuperNode n1 = new Frame3D.SuperNode(1, 0, 0, 0);
n1.dof1constraint = true;//translational constraint in direction x at local system of node
n1.dof2constraint = true;//translational constraint in direction y at local system of node
n1.dof3constraint = true;//translational constraint in direction z at local system of node
n1.dof4constraint = true;//rotational constraint in direction x at local system of node
n1.dof5constraint = true;//rotational constraint in direction y at local system of node
n1.dof6constraint = true;//rotational constraint in direction z at local system of node
Model.InputNodes.Add(n1);

//Create node n2
Frame3D.SuperNode n2 = new Frame3D.SuperNode(2, 0, 4, 0);
Model.InputNodes.Add(n2);

//Create node n3
Frame3D.SuperNode n3 = new Frame3D.SuperNode(3, 5, 4, 0);
Model.InputNodes.Add(n3);

//Create node n4
Frame3D.SuperNode n4 = new Frame3D.SuperNode(4, 5, 0, 0);
n4.dof1constraint = true;//translational constraint in direction x at local system of node
n4.dof2constraint = true;//translational constraint in direction y at local system of node
n4.dof3constraint = true;//translational constraint in direction z at local system of node
n4.dof4constraint = true;//rotational constraint in direction x at local system of node
n4.dof5constraint = true;//rotational constraint in direction y at local system of node
n4.dof6constraint = true;//rotational constraint in direction z at local system of node
Model.InputNodes.Add(n4);

//Create frame element 1 
FrameSuperElement el1 = new FrameSuperElement(1, n1, n2, new Geometry.XYZ(0, 0, 1), matConcrete, secColumn50_50, new MemberReleases(), new MemberReleases(), false, false);
el1.RigidOffsetEndDx = 0.35;
Model.InputFiniteElements.Add(el1);

//Create frame element 2. Note that the proper release object (Partial Releases is passed in the constructor)
FrameSuperElement el2 = new FrameSuperElement(2, n2, n3, new Geometry.XYZ(0, 4, 1), matConcrete, secBeam30_70, new MemberReleases(), new MemberReleases(), false, false);
el2.RigidOffsetStartDx = 0.25;
el2.RigidOffsetEndDx = 0.25;
LinearLoadCaseForSuperFrameElement lc1 = new LinearLoadCaseForSuperFrameElement("lc1", LoadCaseType.DEAD);
lc1.UniformLoad.UniformLoadsY.Add(new SuperUniformLoad(0, 1, -10, -10, LoadDefinitionFromStartingNode.Relatively, LoadCordinateSystem.Global));
el2.LinearLoadCasesList.Add(lc1);
Model.InputFiniteElements.Add(el2);

//Create frame element 3
FrameSuperElement el3 = new FrameSuperElement(3, n4, n3, new Geometry.XYZ(5, 0, 1), matConcrete, secColumn50_50, new MemberReleases(), new MemberReleases(), false, false);
el3.RigidOffsetEndDx = 0.35;
Model.InputFiniteElements.Add(el3);

Call the solution method

Model.Solve();

Obtain the analysis results

double[] Min, Max;

//Support reactions
n1.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n1_Rtx_lc1 = Max[0];
n1.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n1_Rty_lc1 = Max[1];
n4.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n4_Rtx_lc1 = Max[0];
n4.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n4_Rty_lc1 = Max[1];

//Rotations at nodes 2 and 3 (in local node system)
n2.GetNodalDisplacementsForLoadCase("lc1", out Min, out Max, 0); //negative rotation
double n2_Rrz_lc1 = Max[5];//negative rotation
n3.GetNodalDisplacementsForLoadCase("lc1", out Min, out Max, 0); ;//the same rotation, but positive
double n3_Rrz_lc1 = Max[5];//the same rotation, but positive


<< Back to 3D Frame Library

Libraries

Translate our page
Our applications

ENGISSOL provides analysis and design software applications that are useful for structural engineers. Our aim is to offer generic applications that can be applied to the engineering practice and boost the efficiency of our clients by reducing their time and effort, while increasing their productivity and efficiency.

More >>

Libraries

We offer all our solvers to individual developers, software companies, universities etc. In this way, our powerful software engines can be easily adapted and integrated to third party applications enabling our customers to take advantage of the reliability and robustness of our algorithms which have been proven accurate in use from numerous professional individuals or companies from all over the world. The sections that our libraries cover are related to structural Analysis and Design. Analysis is performed by using finite element methods according to the specific needs of the current projects in order to calculate the stress state of a structure after the application of the specified loads. Moreover, the Design section concerns the dimensioning of the structural members according to a regulation (for instance Eurocodes, ACI, AISC, DIN, BS etc) so that they can safely carry the previously specified loads by the analysis.

More >>

Custom Application Development

Among its other activities, ENGISSOL can also undertake the development of new applications or solving engines (libraries) in every field of structural engineering. Taking into advantage our experience in the sections of analysis and design application development, you can effectively increase your productivity, efficiency and profitability in many ways. Therefore, we can help your organization boost productivity and profitability.

More >>

Download area

Download areaDownload our applications in demo format, documentation and help files.

Downloads >>

About our company

ENGISSOL, as the worldwide leader in the development of structural engineering software, provides robust and scientifically advanced solutions with high standards. Our team of experienced professionals is specialized in developing technical applications designed to meet your specific business needs and requirements and our many years of experience help us deliver you solutions that even exceed your initial expectations. The proof is the thousands of individual engineers, design offices and universities who trust us.

Read more >>

ENGISSOL is an engineering software development and consulting company dedicated to provide robust and scientifically advanced software solutions in any field of civil and structural engineering across the globe. Software development and consulting services is what ENGISSOLdoes successfully for the last decade. Our team of experienced professionals is specialized in developing technical applications designed to meet your specific business needs and requirements and our many years of experience help us deliver you solutions that even exceed your initial expectations. The proof are the thousands of customers who trust us.
2017 © Engissol.com. All Rights Reserved. Developed by TotalWeb