49         const std::string& name,
 
   53 OutputEvery(oe), OutputCounter(0)
 
   98 : 
buf(size), m_pMod(pMod)
 
  119         return (
void *)&
buf[0];
 
  146 : m_size(size), m_outbuf(outbuf)
 
  177 : m_size(size), m_buf(buf), m_outbuf(outsize), m_data(data)
 
  180         std::vector<BufCast *>::const_iterator i = data.end();
 
  183         size_t minsize = (*i)->offset() + (*i)->size();
 
  184         ASSERT(outsize >= minsize);
 
  205         for (
size_t i = 0; i < 
m_data.size(); i++) {
 
  236         for (std::vector<ScalarValue *>::iterator i = 
Values.begin();
 
  246         char *curbuf = &
buf[0];
 
  247         for (std::vector<ScalarValue *>::iterator i = 
Values.begin(); i != 
Values.end(); ++i) {
 
  279                 std::vector<BufCast *> data(nCh);
 
  281                 size_t minsize = data[data.size() - 1]->offset() + data[data.size() - 1]->size();
 
  282                 size_t size = minsize;
 
  286                                 silent_cerr(
"ReadStreamContentModifier: invalid size " << i
 
  292                         if (size < minsize) {
 
  293                                 silent_cerr(
"ReadStreamContentModifier: size " << size
 
  294                                         << 
" is less than min size " << minsize
 
  303                 silent_cerr(
"ReadStreamContentModifier: unknown modifier type at line " << HP.
GetLineData() << std::endl);
 
  324                         silent_cerr(
"ReadStreamContent: " 
  325                                 "missing type, assuming \"values\" " 
  339                         silent_cerr(
"illegal number of channels for StreamContent " 
  344                 std::vector<ScalarValue *> Values(nch);
 
  362                                                 silent_cerr(
"StreamContent: " 
  363                                                         "position flag already defined " 
  370                                 } 
else if (HP.
IsKeyWord(
"orientation" "matrix")) {
 
  372                                                 silent_cerr(
"StreamContent: " 
  373                                                         "orientation flag already defined " 
  380                                 } 
else if (HP.
IsKeyWord(
"orientation" "matrix" "transpose")) {
 
  381                                         if (uFlags & GeometryData::ORIENTATION_MASK) {
 
  382                                                 silent_cerr(
"StreamContent: " 
  383                                                         "orientation flag already defined " 
  392                                                 silent_cerr(
"StreamContent: " 
  393                                                         "velocity flag already defined " 
  400                                 } 
else if (HP.
IsKeyWord(
"angular" "velocity")) {
 
  402                                                 silent_cerr(
"StreamContent: " 
  403                                                         "angular velocity flag already defined " 
  416                 std::vector<const StructNode *> 
nodes;
 
  423                                 silent_cerr(
"ReadStreamContent: no structural nodes " << std::endl);
 
  427                         for (; i != e; ++i) {
 
  435                                 nodes.insert(nodes.end(), pSN);
 
  451                 silent_cerr(
"ReadStreamContent: unknown type " 
  463 : sOutFileName(sOutFileName),
 
  464 iPrecision(iPrecision),
 
  480                 silent_cerr(msg << 
"(" << uLabel << 
"): " 
  481                         "unable to open echo file \"" << 
sOutFileName << 
"\"" << std::endl);
 
  488         outFile.setf(std::ios::scientific);
 
  491                 << 
"# generated by " << msg << 
"(" << uLabel << 
")" 
  493         if (nChannels == 1) {
 
  500                         << 
"# Channels #1-" << nChannels
 
  511         for (
unsigned i = 1; i < size; i++) {
 
  522         std::string sOutFileName;
 
  529                         silent_cerr(
"ReadStreamOutEcho: " 
  530                                 "unable to parse echo file name " 
  540                         if (iPrecision <= 0) {
 
  541                                 silent_cerr(
"ReadStreamOutEcho: " 
  542                                         "invalid echo precision " << iPrecision
 
  572                 } 
else if (HP.
IsKeyWord(
"buffer" "stream")) {
 
  576                         silent_cerr(
"ReadOutputElem(" << uLabel << 
"): " 
  577                                 "unknown \"type\" at line " << HP.
GetLineData() << std::endl);
 
  616         const char *s = HP.
IsWord(streamOutputContentTypeWordSet);
 
  618         StreamOutputContentTypeMap::iterator it = streamOutputContentTypeMap.find(std::string(s));
 
  619         if (it == streamOutputContentTypeMap.end()) {
 
  620                 silent_cerr(
"[streamoutelem.cc] ReadStreamContent:unknown stream output content type " 
  625         return it->second->Read(pDM, HP);
 
  639                                                 if (uFlags & GeometryData::X) {
 
  640                                                         silent_cerr(
"StreamContent: " 
  641                                                                 "position flag already defined " 
  648                                         } 
else if (HP.
IsKeyWord(
"orientation" "matrix")) {
 
  649                                                 if (uFlags & GeometryData::ORIENTATION_MASK) {
 
  650                                                         silent_cerr(
"StreamContent: " 
  651                                                                 "orientation flag already defined " 
  658                                         } 
else if (HP.
IsKeyWord(
"orientation" "matrix" "transpose")) {
 
  659                                                 if (uFlags & GeometryData::ORIENTATION_MASK) {
 
  660                                                         silent_cerr(
"StreamContent: " 
  661                                                                 "orientation flag already defined " 
  669                                                 if (uFlags & GeometryData::V) {
 
  670                                                         silent_cerr(
"StreamContent: " 
  671                                                                 "velocity flag already defined " 
  678                                         } 
else if (HP.
IsKeyWord(
"angular" "velocity")) {
 
  680                                                         silent_cerr(
"StreamContent: " 
  681                                                                 "angular velocity flag already defined " 
  694                         std::vector<const StructNode *> 
nodes;
 
  720                                 silent_cerr(
"illegal number of channels for StreamContent " 
  725                         std::vector<ScalarValue *> Values(nch);
 
  741                         return streamOutputContentTypeMap.find(std::string(s)) != streamOutputContentTypeMap.end();
 
  747                 pedantic_cout(
"registering stream output content type \"" << name << 
"\"" 
  749                 return streamOutputContentTypeMap.insert(StreamOutputContentTypeMap::value_type(name, rf)).second;
 
  754                 if (streamOutputInitFunctionCalls++ > 0)
 
  763                 if (streamOutputInitFunctionCalls == 0) {
 
  764                         silent_cerr(
"DestroyStreamOutputContentTypes() called once too many" << std::endl);
 
  768                 if (--streamOutputInitFunctionCalls > 0) {
 
  773                 for (StreamOutputContentTypeMap::iterator i = streamOutputContentTypeMap.begin(); i != streamOutputContentTypeMap.end(); ++i) {
 
  776                 streamOutputContentTypeMap.clear();
 
std::vector< ScalarValue * > Values
virtual int GetOutSize(void) const 
void Set(size_t size, const char *buf)
std::map< std::string, StreamOutputContentTypeReader * > StreamOutputContentTypeMap
StreamContentValue(const std::vector< ScalarValue * > &v, StreamContent::Modifier *pMod)
virtual void Modify(void)=0
unsigned streamOutputInitFunctionCalls
void Set(size_t size, const char *buf)
#define MBDYN_EXCEPT_ARGS
StreamOutElem(unsigned int uL, const std::string &name, unsigned int oe)
virtual StreamContent * Read(DataManager *pDM, MBDynParser &HP)
Elem * ReadOutputElem(DataManager *pDM, MBDynParser &HP, unsigned int uLabel, StreamOutElem::Type eType, StreamContent::Type sType)
std::vector< char > m_outbuf
virtual integer GetInt(integer iDefval=0)
void Echo(const doublereal *pbuf, unsigned nChannels)
virtual const void * GetOutBuf(void) const =0
virtual const char * IsWord(const HighParser::WordSet &ws)
StreamOutputContentTypeMap streamOutputContentTypeMap
bool SetStreamOutputContentType(const char *name, StreamOutputContentTypeReader *rf)
virtual ~StreamContent(void)
virtual void WorkSpaceDim(integer *piRows, integer *piCols) const 
void * GetBuf(void) const 
void DestroyStreamOutputContentTypes(void)
virtual const char * GetFileName(enum Delims Del=DEFAULTDELIM)
const void * GetOutBuf(void) const 
virtual const void * GetOutBuf(void) const 
StreamOutEcho(std::string &sOutFileName, int iPrecision, doublereal dShift)
virtual bool IsWord(const std::string &s) const 
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &X, const VectorHandler &XP)
bool Init(const std::string &msg, unsigned uLabel, unsigned nChannels)
virtual void Set(size_t size, const char *buf)=0
StreamContent * ReadStreamContent(DataManager *pDM, MBDynParser &HP, StreamContent::Type type)
virtual StructNode::Type GetStructNodeType(void) const =0
DataManager::ElemContainerType::const_iterator begin(Elem::Type t) const 
StreamOutEcho * ReadStreamOutEcho(MBDynParser &HP)
virtual bool IsKeyWord(const char *sKeyWord)
Elem * ReadSocketStreamElem(DataManager *pDM, MBDynParser &HP, unsigned int uLabel, StreamContent::Type type)
StreamContent::Modifier * ReadStreamContentModifier(MBDynParser &HP, integer nCh)
unsigned GetNumChannels(void) const 
void Copy(scalar_func_type &d1, const scalar_func_type &d2, LocalDofMap *)
virtual Elem::Type GetElemType(void) const 
virtual int GetOutSize(void) const =0
std::vector< BufCast * > m_data
#define ASSERT(expression)
StreamOutputContentTypeWordSetType streamOutputContentTypeWordSet
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
const void * GetOutBuf(void) const 
Copy(size_t size, const char *buf)
Elem * ReadBufferStreamElem(DataManager *pDM, MBDynParser &HP, unsigned int uLabel, StreamContent::Type type)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &X, const VectorHandler &XP)
virtual StreamContent * Read(DataManager *pDM, MBDynParser &HP)
void InitStreamOutputContentTypes(void)
StreamContentCopyCast(size_t size, const char *buf, size_t outsize, const std::vector< BufCast * > &data)
virtual ~StreamOutElem(void)
static doublereal buf[BUFSIZE]
void ReadScalarValues(DataManager *pDM, MBDynParser &HP, std::vector< ScalarValue * > &Values)
int GetOutSize(void) const 
void ReadBufCast(HighParser &HP, std::vector< BufCast * > &data)
virtual HighParser::ErrOut GetLineData(void) const 
virtual ~StreamContentValue(void)
Node * ReadNode(MBDynParser &HP, Node::Type type) const 
DataManager::ElemContainerType::const_iterator end(Elem::Type t) const 
virtual void Resize(integer iNewSize)=0
int GetOutSize(void) const 
StreamContent(size_t size, Modifier *pMod)
virtual doublereal GetReal(const doublereal &dDefval=0.0)