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 }