45 #ifndef Xyce_N_ANP_OutputMgrAdapter_h
46 #define Xyce_N_ANP_OutputMgrAdapter_h
48 #include <Teuchos_SerialDenseMatrix.hpp>
53 #include <N_LAS_fwd.h>
54 #include <N_PDS_fwd.h>
55 #include <N_TOP_fwd.h>
56 #include <N_UTL_fwd.h>
58 #include <N_UTL_Listener.h>
60 #include <N_LAS_BlockVector.h>
76 Parallel::Machine comm,
77 IO::OutputMgr & output_manager,
78 IO::Measure::Manager & measure_manager,
79 IO::FourierMgr & fourier_manager,
80 IO::ObjectiveManager & objective_manager,
126 Parallel::Communicator & parallel_communicator,
127 Topo::Topology & topology,
129 const std::string & job_name,
131 double current_time)
const;
134 double time, Linear::Vector & currSolutionPtr, Linear::Vector & stateVecPtr, Linear::Vector & storeVecPtr,
135 Linear::Vector & lead_current_vector,
136 Linear::Vector & junction_voltage_vector,
137 Linear::Vector & lead_current_dqdt_vector,
138 std::vector<double> & objectiveVec_,
139 std::vector<double> & dOdpVec_,
140 std::vector<double> & dOdpAdjVec_,
141 std::vector<double> & scaled_dOdpVec_,
142 std::vector<double> & scaled_dOdpAdjVec_,
143 bool skipPrintLineOutput =
false);
147 Linear::Vector & currSolutionPtr, Linear::Vector & stateVecPtr, Linear::Vector & storeVecPtr,
148 Linear::Vector &lead_current_vector,
149 Linear::Vector &junction_voltage_vector,
150 Linear::Vector &lead_current_dqdt_vector,
151 std::vector<double> & objectiveVec_,
152 std::vector<double> & dOdpVec_,
153 std::vector<double> & dOdpAdjVec_,
154 std::vector<double> & scaled_dOdpVec_,
155 std::vector<double> & scaled_dOdpAdjVec_);
159 void outputMPDE(
double time,
const std::vector<double> &fast_time_points,
const Linear::BlockVector &solution_vector);
162 const std::vector< double > & timePoints,
const std::vector< double > & freqPoints,
163 const Linear::BlockVector & timeDomainSolnVec,
const Linear::BlockVector & freqDomainSolnVecReal,
164 const Linear::BlockVector & freqDomainSolnVecImaginary,
const Linear::BlockVector & timeDomainStoreVec,
165 const Linear::BlockVector & freqDomainStoreVecReal,
const Linear::BlockVector & freqDomainStoreVecImaginary,
166 const Linear::BlockVector & timeDomainLeadCurrentVec,
const Linear::BlockVector & freqDomainLeadCurrentVecReal,
167 const Linear::BlockVector & freqDomainLeadCurrentVecImaginary,
const Linear::BlockVector & timeDomainJunctionVoltageVec,
168 const Linear::BlockVector & freqDomainJunctionVoltageVecReal,
const Linear::BlockVector & freqDomainJunctionVoltageVecImaginary );
170 void outputAC(
double freq,
const Linear::Vector & solnVecRealPtr,
const Linear::Vector & solnVecImaginaryPtr);
173 double freq,
double totalOutputNoiseDens_,
double totalInputNoiseDens_,
174 const std::vector<Xyce::Analysis::NoiseData*> & noiseDataVec_);
185 void outputHomotopy(
const std::vector<std::string> & paramNames,
const std::vector<double> & paramVals, Linear::Vector & solnVecPtr );
213 virtual void outputMPDE(
double time,
const Linear::Vector *solution_vector)
228 #endif // Xyce_N_ANP_OutputMgrAdapter_h
IO::OutputMgr & getOutputManager()
void setDCAnalysisMaxSteps(int num)
int dcAnalysisStepNumber_
IO::ObjectiveManager & objectiveManager_
int stepAnalysisStepNumber_
void setDCAnalysisStepNumber(int num)
void outputAC(double freq, const Linear::Vector &solnVecRealPtr, const Linear::Vector &solnVecImaginaryPtr)
OutputAdapter(OutputMgrAdapter &adapter)
Pure virtual class to augment a linear system.
virtual void outputMPDE(double time, const Linear::Vector *solution_vector)
void dumpRestart(Parallel::Communicator ¶llel_communicator, Topo::Topology &topology, Analysis::AnalysisManager &analysis_manager, const std::string &job_name, bool pack, double current_time) const
OutputMgrAdapter(Parallel::Machine comm, IO::OutputMgr &output_manager, IO::Measure::Manager &measure_manager, IO::FourierMgr &fourier_manager, IO::ObjectiveManager &objective_manager, Device::DeviceMgr &device_manager)
const Analysis::SweepVector & getDCSweepVector() const
void outputHomotopy(const std::vector< std::string > ¶mNames, const std::vector< double > ¶mVals, Linear::Vector &solnVecPtr)
void setStepSweepVector(const Analysis::SweepVector &sweep_vector)
Analysis::SweepVector dcSweepVector_
void outputMPDE(double time, const std::vector< double > &fast_time_points, const Linear::BlockVector &solution_vector)
void notify(const StepEvent &event)
virtual bool outputFunkyMPDE()
IO::OutputMgr & outputManager_
IO::FourierMgr & fourierManager_
void setDCSweepVector(const Analysis::SweepVector &sweep_vector)
int stepAnalysisMaxSteps_
Util::Op::Operator * tempOp_
Device::DeviceMgr & deviceManager_
Analysis::SweepVector stepSweepVector_
void dcOutput(int dcStepNumber, Linear::Vector &currSolutionPtr, Linear::Vector &stateVecPtr, Linear::Vector &storeVecPtr, Linear::Vector &lead_current_vector, Linear::Vector &junction_voltage_vector, Linear::Vector &lead_current_dqdt_vector, std::vector< double > &objectiveVec_, std::vector< double > &dOdpVec_, std::vector< double > &dOdpAdjVec_, std::vector< double > &scaled_dOdpVec_, std::vector< double > &scaled_dOdpAdjVec_)
OutputMgrAdapter & outputManagerAdapter_
double getInitialOutputInterval() const
virtual ~OutputMgrAdapter()
Parallel::Machine getComm()
const Analysis::SweepVector & getStepSweepVector() const
std::vector< SweepParam > SweepVector
const IO::IntervalVector & getOutputIntervals() const
void outputNoise(double freq, double totalOutputNoiseDens_, double totalInputNoiseDens_, const std::vector< Xyce::Analysis::NoiseData * > &noiseDataVec_)
void outputHB(const std::vector< double > &timePoints, const std::vector< double > &freqPoints, const Linear::BlockVector &timeDomainSolnVec, const Linear::BlockVector &freqDomainSolnVecReal, const Linear::BlockVector &freqDomainSolnVecImaginary, const Linear::BlockVector &timeDomainStoreVec, const Linear::BlockVector &freqDomainStoreVecReal, const Linear::BlockVector &freqDomainStoreVecImaginary, const Linear::BlockVector &timeDomainLeadCurrentVec, const Linear::BlockVector &freqDomainLeadCurrentVecReal, const Linear::BlockVector &freqDomainLeadCurrentVecImaginary, const Linear::BlockVector &timeDomainJunctionVoltageVec, const Linear::BlockVector &freqDomainJunctionVoltageVecReal, const Linear::BlockVector &freqDomainJunctionVoltageVecImaginary)
IO::Measure::Manager & measureManager_
void tranOutput(double time, Linear::Vector &currSolutionPtr, Linear::Vector &stateVecPtr, Linear::Vector &storeVecPtr, Linear::Vector &lead_current_vector, Linear::Vector &junction_voltage_vector, Linear::Vector &lead_current_dqdt_vector, std::vector< double > &objectiveVec_, std::vector< double > &dOdpVec_, std::vector< double > &dOdpAdjVec_, std::vector< double > &scaled_dOdpVec_, std::vector< double > &scaled_dOdpAdjVec_, bool skipPrintLineOutput=false)