Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

64 lines
1.9 KiB

//============================================================================
// Name : testnas2exo.cpp
// Author : Ramon J. Moral (STRA LLC), John Niederhaus (Coordinator, SNL)
// Version :
// Copyright : (c) Sandia National Labs 2020, 2021, 2022
// Description : Testing nas2exo Library, C++ 14
//============================================================================
#pragma once
#include "N2EDataTypes.h"
#include <fstream>
#include <memory>
#include <string>
#include <vector>
using namespace N2EModules;
namespace NasModules {
class N2ENasReader
{
public:
N2ENasReader(std::string ifname = "");
virtual ~N2ENasReader() = default;
inline unsigned getLineCount() { return this->lineCount; };
inline size_t getNumberGridPts() { return this->gridList.size(); };
inline size_t getNumberElems() { return this->elementList.size(); };
inline size_t getNumberSects() { return this->sections.size(); };
inline std::string getPath() { return this->inFileName; };
bool processFile();
std::vector<sectionType> getSections() { return this->sections; };
std::vector<gridType> getGridPoints() { return this->gridList; };
std::vector<elementType> getElementList() { return this->elementList; };
std::string getModelTitle();
void setModelTitle(const std::string &title = "");
protected:
std::string inFileName{};
std::unique_ptr<std::ifstream> inStream{};
unsigned lineCount{0u};
std::vector<sectionType> sections{};
std::vector<gridType> gridList{};
std::vector<elementType> elementList{};
std::string modelTitle{};
bool doesFileExist(const std::string &fname);
// Local buffer for reading faster
char _readBuffer[4096]{'\0'};
private:
unsigned lineCounter();
std::vector<std::string> csvLineToTokens(char buff[]);
};
} // namespace NasModules