Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

DipoleSource3D.h

00001 /****************************************************************************
00002  *                                                                          *
00003  *  Program: FDDlib                                                         *
00004  *  Version: 1.1                                                            *
00005  *                                                                          *
00006  *  Copyright (C) 2002 - 2004 by Eric Miller and Dana Brooks                *
00007  *  All rights reserved.                                                    *
00008  *                                                                          *
00009  *  This software is Version 1.1 of the fddlib tomography toolbox.          *
00010  *  It is not to be redistributed or used for any commercial purpose        *
00011  *  without the prior written consent of the authors and Northeastern       *
00012  *  University.                                                             *
00013  *                                                                          *
00014  *  This software is provided as is, and any express or implied warranties, *
00015  *  including but not limited to the implied warranty of merchantability    *
00016  *  and the implied warranty of fitness for a particular purpose, are dis-  *
00017  *  claimed.  In no event shall the authors or Northeastern University be   *
00018  *  liable for any direct, indirect, incidental, special, exemplary, or     *
00019  *  consequential damages (including but not limited to procurement of      * 
00020  *  substitute goods or services; loss of use, data, or profits; or busi-   *
00021  *  ness interruption) however caused and on any theory of liability,       *
00022  *  whether in contract, strict liability, or tort (including negligence or *
00023  *  otherwise) arising in any way from the use of this software, even if    *
00024  *  advised of the possibility of such damage.                              *
00025  *                                                                          *
00026  *  Portions of this code benefit from ideas from Kyle Guilbert, Greg       *
00027  *  Boverman, Derek Uluski, David Kaeli, and Jennifer Black                 *
00028  *                                                                          *
00029  ****************************************************************************/
00030 
00031 #ifndef _DIPOLE_SOURCE3D_H_
00032 #define _DIPOLE_SOURCE3D_H_
00033 
00034 #include "Source3D.h"
00035 #include "Complex.h"
00036 #include "CartesianNode3D.h"
00037 #include "Location3D.h"
00038 #include <vector>
00039 
00040 namespace FDDlib {
00041 
00048 class DipoleSource3D : public Source3D {
00049 protected:
00050 
00052   Location3D location1_;
00053 
00055   double int1_;
00057   double phase1_;
00058 
00060   Location3D location2_;
00061 
00063   double int2_;
00065   double phase2_;
00066 
00067 public:
00068 
00077   DipoleSource3D(const Location3D& location1, double int1, double phase1,
00078                const Location3D& location2, double int2, double phase2);
00079 
00080 
00091   DipoleSource3D(const Location3D& location1, double int1, double phase1,
00092                const Location3D& location2, double int2, double phase2,
00093                const std::vector<double> &frequencies);
00094 
00103   void set(const Location3D& location1, double int1, double phase1,
00104            const Location3D& location2, double int2, double phase2);
00105            
00114   void getPoles(Location3D& location1, double& int1, double& phase1,
00115                 Location3D& location2, double& int2, double& phase2) const;
00116 
00121   void setLocations(const Location3D& location1,
00122                     const Location3D& location2);
00123 
00128   void getLocations(Location3D& location1,
00129                     Location3D& location2) const;
00130 
00135   void getIntensities(double &int1, double& int2) const;
00136 
00141   void setIntensities(double int1, double int2);
00142 
00147   void getPhases(double& phase1, double& phase2) const;
00148 
00153   void setPhases(double phase1, double phase2);
00154 
00160   Complex<double> getRightHandSide(const CartesianNode3D& node) const;
00161 
00162 };
00163 
00164 }
00165 
00166 #endif

Generated on Mon Aug 30 15:41:06 2004 for FDDLib by doxygen1.2.18