MSpin-JCoupling  2.1
quantumcoupling.h
1 /***************************************************************************
2  quantumcoupling.h - description
3  -------------------
4  author : Armando Navarro-Vazquez
5  email : armando.deus@gmail.com
6  ***************************************************************************/
7 
8 /***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 
17 #ifndef MAGNES_QUANTUMCOUPLING_H
18 #define MAGNES_QUANTUMCOUPLING_H
19 
20 
21 #include "coreexport.h"
22 #include "mathtools.h"
23 
24 namespace magnes
25 {
26 class QuantumCouplingPrivate;
27 
28 class MAGNES_CORE_API QuantumCoupling
29 {
30 public:
31  QuantumCoupling(size_t i, size_t j);
32  QuantumCoupling(size_t i,size_t j, double v);
33  QuantumCoupling( const QuantumCoupling& c );
34  QuantumCoupling& operator= ( const QuantumCoupling& c );
35  ~QuantumCoupling();
36  const size_t& I() const;
37  const size_t& J() const;
38  size_t& I();
39  size_t& J();
40  const Scalar<double>& TotalCoupling() const;
41  void SetTotalCoupling(double v);
42  const Scalar<double>& FermiContact() const;
43  const Scalar<double>& SpinDipole() const;
44  const Scalar<double>& FCSDCrossTerm() const;
45  const Scalar<double>& ParamagneticSpinOrbit() const;
46  const Scalar<double>& DiamagneticSpinOrbit() const;
47  void SetFermiContact(double v);
48  void SetSpinDipole(double v);
49  void SetFCSDCrossTerm(double v);
50  void SetParamagneticSpinOrbit(double v);
51  void SetDiamagneticSpinOrbit(double v);
53  void Reset();
54  QuantumCoupling operator *(double d) const;
55  QuantumCoupling operator +(const QuantumCoupling& q) const;
56  void operator +=(const QuantumCoupling& q);
57 private:
58  QuantumCouplingPrivate* _d;
59 };
60 }
61 #endif //MAGNES_QUANTUMCOUPLING_H
the global magnes namespace
Definition: ccchequation.h:38
Definition: mathtools.h:779
Definition: quantumcoupling.h:28
Coordinate operator*(float f, Coordinate a)
Definition: coordinate.h:102