46 #ifndef Xyce_N_DEV_MutIndNonLin2_h
47 #define Xyce_N_DEV_MutIndNonLin2_h
59 #include <Teuchos_RCP.hpp>
65 namespace MutIndNonLin2 {
72 static const char *
name() {
return "Nonlinear Mutual Inductor";}
113 void registerLIDs(
const std::vector<int> & intLIDVecRef,
114 const std::vector<int> & extLIDVecRef );
120 const std::vector< std::vector<int> > &
jacobianStamp()
const;
121 void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec );
133 void varTypes( std::vector<char> & varTypeVec );
195 std::vector< std::vector< double > >
LO;
197 std::vector< double >
LOI;
237 template <
typename ScalarT>
238 ScalarT
Pcalc(
const ScalarT & Mag,
const ScalarT & CurrentSum,
const ScalarT & Vpos,
const ScalarT & Vneg);
std::vector< double > dP_dI
static void loadModelParameters(ParametricData< Model > &model_parameters)
Instance & operator=(const Instance &)
void registerLIDs(const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
Teuchos::RCP< std::ofstream > outputFileStreamPtr
bool updatePrimaryState()
std::vector< double > LOI
std::vector< double > inductorCurrents
std::vector< std::string > couplingInductor
static bool isLinearDevice()
std::vector< Instance * > InstanceVector
std::vector< int > deltaMEquInductorOffsets
std::vector< double > branchCurrentSumHistory
std::vector< double > dManp_dI
void varTypes(std::vector< char > &varTypeVec)
bool updateSecondaryState()
Pure virtual class to augment a linear system.
void registerStateLIDs(const std::vector< int > &staLIDVecRef)
std::vector< double > ddelM_dI
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
void updateInductanceMatrix()
std::vector< double > couplingCoefficient
double deltaBranchCurrentSum
bool updateTemperature(const double &temp_tmp)
std::vector< Instance * > instanceContainer
bool useRKIntegrationGiven
static bool modelRequired()
std::vector< InductorInstanceData * > instanceData
bool updateIntermediateVars()
std::vector< double > dHe_dI
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
const std::vector< std::vector< int > > & jacobianStamp() const
static const char * name()
int deltaMEquDeltaMOffset
double oldBranchCurrentSum
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
The Device class is an interface for device implementations.
static const char * deviceTypeName()
virtual std::ostream & printOutInstances(std::ostream &os) const
bool processInstanceParams()
processInstanceParams
std::vector< std::vector< int > > jacStamp
std::vector< std::string > inductorsNode1
Class Configuration contains device configuration data.
std::vector< std::string > inductorNames
std::vector< double > PFunctionHistory
Model & operator=(const Model &)
std::vector< double > inductorInductances
void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec)
bool processParams()
processParams
Instance(const Configuration &configuration, const InstanceBlock &IB, Model &Iiter, const FactoryBlock &factory_block)
ScalarT Pcalc(const ScalarT &Mag, const ScalarT &CurrentSum, const ScalarT &Vpos, const ScalarT &Vneg)
void auxDAECalculations()
double dP_dBranchCurrentSum
std::vector< std::vector< double > > LO
ModelBlock represents a .MODEL line from the netlist.
The DeviceTraits template describes the configuration of a device.
Manages parameter binding for class C.
std::vector< std::string > inductorsNode2
InstanceBlock represent a device instance line from the netlist.
std::vector< double > dMirrp_dI
std::vector< double > inductanceVals
void addInstance(Instance *instance)