static void Main(string[] args) { /* Static scheme * * * |F=15kN * HEA400 |F=10kN | * *====================*==========*==========* * /\ /\ * * | | | | * /--------5.0m--------/---2.5m---/---2.5m---/ * * */ // Proposed consistent units applied in this example are: [Pa], [N], [Nm], [m], [m^4] // Create a new instance of Scheme class with static scheme information IScheme scheme = new Scheme(); // Create a new instance of Material class IMaterial material = scheme.NewMaterial(); material.Number = 1; material.Name = "Steel"; material.E = 2.1e11; material.v = 0.3; // Add an instance of Material class to the list of materials scheme.Materials.Add(material); // Create a new instance of CrossSection class ICrossSection crossSection = scheme.NewCrossSection(); crossSection.Number = 1; crossSection.Name = "HEA400"; crossSection.Iy = 0.00045070; // Add an instance of CrossSection class to the list of cross sections scheme.CrossSections.Add(crossSection); // Create new instances of Node class INode node_1 = scheme.NewNode(); node_1.Number = 1; node_1.Name = "Start node"; node_1.X = 0; INode node_2 = scheme.NewNode(); node_2.Number = 2; node_2.Name = "Load node"; node_2.X = 5; INode node_3 = scheme.NewNode(); node_3.Number = 3; node_3.Name = "Middle node"; node_3.X = 7.5; INode node_4 = scheme.NewNode(); node_4.Number = 4; node_4.Name = "End node"; node_4.X = 10.00; // Add instances of Node class to the list of nodes scheme.Nodes.Add(node_1); scheme.Nodes.Add(node_2); scheme.Nodes.Add(node_3); scheme.Nodes.Add(node_4); // Create new instances of Element class IElement element_1 = scheme.NewElement(); element_1.Number = 1; element_1.Name = "Left element"; element_1.MaterialNumber = 1; element_1.CrossSectionNumber = 1; element_1.StartNodeNumber = 1; element_1.EndNodeNumber = 2; IElement element_2 = scheme.NewElement(); element_2.Number = 2; element_2.Name = "Middle element"; element_2.MaterialNumber = 1; element_2.CrossSectionNumber = 1; element_2.StartNodeNumber = 2; element_2.EndNodeNumber = 3; IElement element_3 = scheme.NewElement(); element_3.Number = 3; element_3.Name = "Right element"; element_3.MaterialNumber = 1; element_3.CrossSectionNumber = 1; element_3.StartNodeNumber = 3; element_3.EndNodeNumber = 4; // Add instances of Element class to the list of elements scheme.Elements.Add(element_1); scheme.Elements.Add(element_2); scheme.Elements.Add(element_3); // Create a new instance of Load class ILoad load_1 = scheme.NewLoad(); load_1.Number = 1; load_1.Name = "Force 1"; load_1.NodeNumber = 2; load_1.Pz = -10000; load_1.My = 0; // Create a new instance of Load class ILoad load_2 = scheme.NewLoad(); load_2.Number = 2; load_2.Name = "Force 2"; load_2.NodeNumber = 3; load_2.Pz = -15000; load_2.My = 0; // Add an instance of Material class to the list of materials scheme.Loads.Add(load_1); scheme.Loads.Add(load_2); // Create a new instance of Model class with Finite Element Method model IModel model = new Model(scheme); model.AssembyModel(); // ### Display calculated data for model ### DisplayResults(model); // Create a new instance of Solver class with Finite Element Method solver module ISolver solver = new Solver(model); solver.AssemblyFiniteElementModel(); solver.Run(); // ### Display calculated data for solver ### DisplayResults(solver); // Create a new instance of PostProcessor class with results of the finite element method calculations IPostProcessor postProcessor = new PostProcessor(scheme, model, solver); postProcessor.CalculateResults(); // ### Display calculated data from post processor ### DisplayResults(postProcessor); Console.ReadKey(); }