AMSKernel_state.hh

Go to the documentation of this file.
00001 #ifndef AMSKERNEL_STATE_HH
00002 #define AMSKERNEL_STATE_HH
00003 
00004 // Copyright (c) 2002-2005 The University of Cincinnati.  All rights
00005 // reserved.
00006 
00007 // You may modify, distribute, and use the software contained in this
00008 // package under the terms of the "GNU LIBRARY GENERAL PUBLIC LICENSE"
00009 // version 2, June 1991. A copy of this license agreement can be found in
00010 // the file "LGPL", distributed with this archive.
00011 
00012 // Authors: Sameer Kher                    kherss@ececs.uc.edu
00013 //          Shriram Subramanian            subramsi@ececs.uc.edu
00014 
00015 #include "tyvis/CallStack.hh"
00016 #include "tyvis/Block.hh"
00017 #include "tyvis/Variable.hh"
00018 #include "tyvis/VHDLKernel_state.hh"
00019 #include "tyvis/Constants.hh"
00020 #include "warped/SimulationObject.h"
00021 #include "warped/State.h"
00022 
00023 class Wait;
00024 class SignalBase;
00025 class VHDLKernel;
00026 class AMSKernel;
00027 
00028 typedef long long int discreteTime;
00029 
00032 class AMSKernel_state: public VHDLKernel_state {
00033 
00034 public:
00035   AMSKernel_state();
00036   virtual ~AMSKernel_state();
00037 
00039   double* getRhs();
00040 
00042   double* getOldRhs();
00043 
00045   void cleanState();
00046 
00049   virtual SignalBase* locateSig(int);
00050 
00052   long getMode();
00053 
00057   void setMode(long newMode);
00058 
00060   int getIterMode();
00061 
00062   /* Sets the iteration state machine state vector. 
00063 
00064      @param newMode vector indicating iteration state vector.*/
00065   void setIterMode(int newMode);
00066 
00070   void setRhs(double* newRhs );
00071 
00076   void setRhsValue(int position, double value);
00077 
00081   void setOldRhs(double* newRhs);
00082 
00087   void setOldRhsValue(int position, double value);
00088 
00090   int getVectorSize();
00091 
00095   void setVectorSize(int size);
00096 
00098   void initState();
00099   
00101   discreteTime getCurTime();
00102 
00106   void setCurTime(discreteTime value);
00107 
00113   double* getStateVector(int i);
00114 
00116   int getStateLength();
00117 
00121   void setStateLength(int value);
00122 
00124   int getIntegOrder();
00125 
00129   void setIntegOrder(int value);
00130 
00132   double getDelta();
00133 
00137   void setDelta(double value);  
00138 
00144   double getOldDelta(int i);
00145 
00151   void setOldDelta(int i, double value);
00152 
00158   double getIntegCoeff(int i);
00159 
00165   void setIntegCoeff(int i, double value);
00166 
00172   double* getStates(int i);
00173 
00179   void setStates(int i, double* value);
00180 
00188   void setStates(int i, int j, double value);
00189 
00191   discreteTime getFinalTime();
00192 
00196   void setFinalTime(discreteTime value);
00197 
00198   
00199   
00200   
00201 protected:
00202 
00203 private:
00204 
00206   long mode;
00207 
00209   int iterMode;
00210 
00212   double* rhs;
00213 
00215   double* oldRhs;
00216 
00218   int vectorSize;
00219 
00221   int stateLength;
00222 
00224   double* states[4];
00225 
00227   int integOrder;
00228 
00230   double integCoeff[7];
00231 
00233   discreteTime finalTime;
00234 
00236   discreteTime curTime;
00237 
00239   double delta;
00240 
00242   double oldDelta[7];
00243 
00244 };
00245 
00246 #endif

Generated on Fri Mar 31 11:05:08 2006 for Tyvis by  doxygen 1.4.6