00001 #ifndef SOU3DSPHR_H
00002 #define SOU3DSPHR_H
00003
00004 #include "soubase.h"
00005 #include "harmonic_expansion.h"
00006
00007 using namespace std;
00008
00009
00013
00014 template <class TSource1d>
00015 class CSourceFtn3dSphr : public CSourceFtnBase, public CSphericalHarmonicExpansion< TSource1d > {
00016
00017 public:
00018
00019 CSourceFtn3dSphr(string p1="", string p2="", int lmax=0, string sdir="."):
00020 CSourceFtnBase(p1,p2), CSphericalHarmonicExpansion< TSource1d >(lmax,(p1==p2),sdir) {}
00021
00022
00023 virtual bool Read(const parameterMap& s){
00024 parameterMap ss(s);
00025 parameter::set(ss,"skip_odd_l",(particle1==particle2));
00026 return CSourceFtnBase::Read(ss)&&CSphericalHarmonicExpansion< TSource1d >::Read(ss);
00027 }
00028 virtual bool Write(parameterMap& s){
00029 bool result=CSourceFtnBase::Write(s);
00030 result = result && CSphericalHarmonicExpansion< TSource1d >::Write(s);
00031 return result;
00032 }
00033 };
00034
00035 #endif