00001 #include "flashdataarray.h" 00002 00003 00004 FlashDataArray::FlashDataArray(int nPhases,int components,int nSize) 00005 { 00006 00007 reinit(nPhases,components,nSize); 00008 } 00009 00010 void FlashDataArray::reinit(int nPhases,int components,int size) 00011 { 00012 m_nPhases=nPhases; 00013 m_nComponents=components; 00014 m_M.reinit(size,nPhases*components); 00015 m_M=0.0; 00016 } 00017 00018 00019 void FlashDataArray::getData(Index i,FlashData &data) 00020 { 00021 assert(data.getNPhases() == m_nPhases && data.getNComponents() == m_nComponents); 00022 assert(i < m_M.m()); 00023 00024 double *p = &(m_M(i,0)); 00025 data.setData(p); 00026 } 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 FlashDataArray::FlashDataArray() 00037 { 00038 00039 } 00040 00041 00042 FlashDataArray::~FlashDataArray() 00043 { 00044 00045 } 00046 00047 00048 void FlashDataArray::getVectorData(unsigned phase,unsigned component,VecDouble &v) const 00049 { 00050 assert(v.size() == size()); 00051 unsigned _size = size(); 00052 FlashData data(m_nPhases,m_nComponents,NULL); 00053 for (unsigned i=0;i<_size;i++) 00054 { 00055 const_cast<FlashDataArray*>(this)->getData(i,data); 00056 v(i)=data.getMoles(phase,component); 00057 } 00058 00059 }