/*************************************************************************** * Copyright (c) 2023 Ondsel, Inc. * * * * This file is part of OndselSolver. * * * * See LICENSE file for details about copyright. * ***************************************************************************/ #pragma once #include #include #include "MBDynItem.h" namespace MbD { class MBDynData; class MBDynInitialValue; class MBDynControlData; class MBDynNodes; class MBDynElements; class MBDynVariables; class MBDynLabels; class MBDynReferences; class MBDynSystem : public MBDynItem { public: static void runFile(const char* chars); static void eraseComments(std::vector& lines); static std::vector collectStatements(std::vector& lines); void initialize() override; void parseMBDyn(std::vector& lines) override; std::shared_ptr mbdynVariables() override; void runKINEMATIC(); void setFilename(std::string filename); void readDataBlock(std::vector& lines); void readInitialValueBlock(std::vector& lines); void readControlDataBlock(std::vector& lines); void readLabels(std::vector& lines); void readVariables(std::vector& lines); void readReferences(std::vector& lines); void readNodesBlock(std::vector& lines); void readElementsBlock(std::vector& lines); std::string filename = ""; std::shared_ptr dataBlk; std::shared_ptr initialValueBlk; std::shared_ptr controlDataBlk; std::shared_ptr nodesBlk; std::shared_ptr elementsBlk; std::shared_ptr variables; std::shared_ptr labels; std::shared_ptr references; }; }