40 return "Calculates crystal field energies and wave functions for rare earth "
41 "ions given the field parameters.";
50 auto bounds = std::make_shared<Kernel::BoundedValidator<int>>(-99, 13);
52 "A rare earth ion. Possible values are: "
53 "1=Ce 2=Pr 3=Nd 4=Pm 5=Sm 6=Eu 7=Gd 8=Tb "
54 "9=Dy 10=Ho 11=Er 12=Tm 13=Yb, or "
55 "negative values for arbitrary J with "
56 "J=-nre/2 up to nre=-99 (J=99/2)");
58 declareProperty(
"BmolX", 0.0,
"The x-component of the molecular field.");
59 declareProperty(
"BmolY", 0.0,
"The y-component of the molecular field.");
60 declareProperty(
"BmolZ", 0.0,
"The z-component of the molecular field.");
62 declareProperty(
"BextX", 0.0,
"The x-component of the external field.");
63 declareProperty(
"BextY", 0.0,
"The y-component of the external field.");
64 declareProperty(
"BextZ", 0.0,
"The z-component of the external field.");
82 declareProperty(
"IB20", 0.0,
"Imaginary part of the B20 field parameter.");
83 declareProperty(
"IB21", 0.0,
"Imaginary part of the B21 field parameter.");
84 declareProperty(
"IB22", 0.0,
"Imaginary part of the B22 field parameter.");
85 declareProperty(
"IB40", 0.0,
"Imaginary part of the B40 field parameter.");
86 declareProperty(
"IB41", 0.0,
"Imaginary part of the B41 field parameter.");
87 declareProperty(
"IB42", 0.0,
"Imaginary part of the B42 field parameter.");
88 declareProperty(
"IB43", 0.0,
"Imaginary part of the B43 field parameter.");
89 declareProperty(
"IB44", 0.0,
"Imaginary part of the B44 field parameter.");
90 declareProperty(
"IB60", 0.0,
"Imaginary part of the B60 field parameter.");
91 declareProperty(
"IB61", 0.0,
"Imaginary part of the B61 field parameter.");
92 declareProperty(
"IB62", 0.0,
"Imaginary part of the B62 field parameter.");
93 declareProperty(
"IB63", 0.0,
"Imaginary part of the B63 field parameter.");
94 declareProperty(
"IB64", 0.0,
"Imaginary part of the B64 field parameter.");
95 declareProperty(
"IB65", 0.0,
"Imaginary part of the B65 field parameter.");
96 declareProperty(
"IB66", 0.0,
"Imaginary part of the B66 field parameter.");
100 "The energies starting at 0 in ascending order.");
102 "The eigenvectors.");
#define DECLARE_ALGORITHM(classname)
void declareProperty(std::unique_ptr< Kernel::Property > p, const std::string &doc="") override
Add a property to the list of managed properties.
TypedValue getProperty(const std::string &name) const override
Get the value of a property.
std::vector< double > packToStdVector() const
Pack the matrix into a single std vector of doubles (for passing in and out of algorithms)
CrystalFieldEnergies : Calculates crystal field energies and wave functions for rare earth ions given...
void exec() override
Execute the algorithm.
void init() override
Initialize the algorithm's properties.
int version() const override
Algorithm's version for identification.
const std::string category() const override
Algorithm's category for identification.
const std::string summary() const override
Algorithm's summary for use in the GUI and help.
std::vector< double > toStdVector() const
Copy the values to an std vector of doubles.
Support for a property that holds an array of values.
IPropertyManager * setProperty(const std::string &name, const T &value)
Templated method to set the value of a PropertyWithValue.
void MANTID_CURVEFITTING_DLL calculateEigensystem(DoubleFortranVector &eigenvalues, ComplexFortranMatrix &eigenvectors, ComplexFortranMatrix &hamiltonian, ComplexFortranMatrix &hzeeman, int nre, const DoubleFortranVector &bmol, const DoubleFortranVector &bext, const ComplexFortranMatrix &bkq, double alpha_euler=0.0, double beta_euler=0.0, double gamma_euler=0.0)
Calculate eigenvalues and eigenvectors of the crystal field hamiltonian.
std::complex< double > ComplexType
Describes the direction (within an algorithm) of a Property.
@ Output
An output workspace.