Logo Search packages:      
Sourcecode: ktechlab version File versions

inductance.h

/***************************************************************************
 *   Copyright (C) 2005 by David Saxton                                    *
 *   david@bluehaze.org                                                    *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 ***************************************************************************/

#ifndef INDUCTANCE_H
#define INDUCTANCE_H

#include "reactive.h"

/**

@author David Saxton
*/
00020 class Inductance : public Reactive
{
      public:
            enum Method
            {
                  m_none, // None
                  m_euler, // Backward Euler
                  m_trap // Trapezoidal (currently unimplemented)
            };
            Inductance( double capacitance, double delta );
            virtual ~Inductance();
      
00032             virtual Type type() const { return Element_Inductance; }
            /**
             * Set the stepping use for numerical integration of inductance, and the
             * interval between successive updates.
             */
            void setMethod( Method m );
            virtual void time_step();
            virtual void add_initial_dc();
            void setInductance( double i );
            virtual void add_map();
      
      protected:
            virtual void updateCurrents();
            virtual bool updateStatus();
      
      private:
            double m_inductance; // Inductance
            Method m_method; // Method of integration
            
            double r_eq_old;
            double v_eq_old;
};

#endif

Generated by  Doxygen 1.6.0   Back to index