2021-04-08 20:03:23 +02:00
|
|
|
#ifndef LINEARSIMULATIONMODEL_HPP
|
|
|
|
#define LINEARSIMULATIONMODEL_HPP
|
|
|
|
|
2021-11-15 10:08:39 +01:00
|
|
|
#include "simulationmodel.hpp"
|
2021-04-08 20:03:23 +02:00
|
|
|
#include "threed_beam_fea.h"
|
|
|
|
#include <filesystem>
|
|
|
|
#include <vector>
|
|
|
|
|
2021-11-15 10:08:39 +01:00
|
|
|
class LinearSimulationModel : public SimulationModel
|
|
|
|
{
|
2021-04-08 20:03:23 +02:00
|
|
|
public:
|
|
|
|
LinearSimulationModel(){
|
|
|
|
|
|
|
|
}
|
2021-12-15 14:19:21 +01:00
|
|
|
static std::vector<fea::Elem> getFeaElements(const std::shared_ptr<SimulationMesh> &pMesh);
|
2021-04-08 20:03:23 +02:00
|
|
|
|
2021-12-15 14:19:21 +01:00
|
|
|
static std::vector<fea::Node> getFeaNodes(const std::shared_ptr<SimulationMesh> &pMesh);
|
|
|
|
static std::vector<fea::BC> getFeaFixedNodes(const std::shared_ptr<SimulationJob> &job);
|
2021-04-08 20:03:23 +02:00
|
|
|
|
2021-12-15 14:19:21 +01:00
|
|
|
static std::vector<fea::Force> getFeaNodalForces(const std::shared_ptr<SimulationJob> &job);
|
2021-04-08 20:03:23 +02:00
|
|
|
static SimulationResults getResults(const fea::Summary &feaSummary,
|
2021-12-15 14:19:21 +01:00
|
|
|
const std::shared_ptr<SimulationJob> &simulationJob);
|
2021-04-08 20:03:23 +02:00
|
|
|
|
2021-12-15 14:19:21 +01:00
|
|
|
SimulationResults executeSimulation(const std::shared_ptr<SimulationJob> &simulationJob);
|
|
|
|
void setStructure(const std::shared_ptr<SimulationMesh> &pMesh);
|
2021-04-08 20:03:23 +02:00
|
|
|
|
|
|
|
private:
|
2021-12-15 14:19:21 +01:00
|
|
|
fea::ThreedBeamFEA simulator;
|
|
|
|
static void printInfo(const fea::BeamStructure &job);
|
2021-04-08 20:03:23 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // LINEARSIMULATIONMODEL_HPP
|