FOX/ObjCryst++
1.10.X (development)
|
Texture correction using the Ellipsoidal preferred orientation function. More...
Public Member Functions | |
TextureEllipsoid (const ScatteringData &data, const REAL EPR1=0.0, const REAL EPR2=0.0, const REAL EPR3=0.0, const REAL EPR4=0.0, const REAL EPR5=0.0, const REAL EPR6=0.0) | |
virtual const string & | GetName () const |
Get the name of this object. | |
virtual const string & | GetClassName () const |
Get the name of the class. | |
void | SetParams (const REAL EPR1, const REAL EPR2, const REAL EPR3, const REAL EPR4, const REAL EPR5, const REAL EPR6) |
virtual void | GlobalOptRandomMove (const REAL mutationAmplitude, const RefParType *type=gpRefParTypeObjCryst) |
Make a random move of the current configuration. More... | |
virtual void | XMLOutput (ostream &os, int indent=0) const |
Output to stream in well-formed XML. More... | |
virtual void | XMLInput (istream &is, const XMLCrystTag &tag) |
Input From stream. More... | |
virtual void | BeginOptimization (const bool allowApproximations=false, const bool enableRestraints=false) |
This should be called by any optimization class at the begining of an optimization. More... | |
void | InitRefParList () |
Prepare the refinable parameters list. | |
void | UpdateEllipsoidPar () |
Update ellipsoid parameters for tetragonal, trigonal, hexagonal, cubic lattices. More... | |
Public Member Functions inherited from ObjCryst::ScatteringCorr | |
ScatteringCorr (const ScatteringData &data) | |
Constructor, with the associated ScatteringData object. | |
const CrystVector_REAL & | GetCorr () const |
Get the vector of corrections for all reflections. More... | |
const RefinableObjClock & | GetClockCorr () const |
Get the value of the clock corresponding to the last time the correction was actually computed. | |
Public Member Functions inherited from ObjCryst::RefinableObj | |
RefinableObj () | |
Constructor. | |
RefinableObj (const bool internalUseOnly) | |
Constructor. More... | |
RefinableObj (const RefinableObj &old) | |
Defined not implemented... More... | |
virtual | ~RefinableObj () |
Destructor. | |
virtual void | SetName (const string &name) |
Name of the object. | |
void | operator= (const RefinableObj &old) |
Defined not implemented... More... | |
void | PrepareForRefinement () const |
Find which parameters are used and not fixed, for a refinement /optimization. More... | |
void | FixAllPar () |
Fix All parameters. | |
void | UnFixAllPar () |
UnFix All parameters. | |
void | SetParIsFixed (const long parIndex, const bool fix) |
Fix/un-fix one parameter from its #. | |
void | SetParIsFixed (const string &parName, const bool fix) |
Fix/un-fix one parameter from its name. | |
void | SetParIsFixed (const RefParType *type, const bool fix) |
Fix/un-fix one family of parameters. | |
void | SetParIsUsed (const string &parName, const bool use) |
Set whether a parameter is used. | |
void | SetParIsUsed (const RefParType *type, const bool use) |
Set whether a family of parameters is used. | |
long | GetNbPar () const |
Total number of refinable parameter in the object. More... | |
long | GetNbParNotFixed () const |
Total number of non-fixed parameters. Is initialized by PrepareForRefinement() | |
RefinablePar & | GetPar (const long i) |
Access all parameters in the order they were inputted. | |
const RefinablePar & | GetPar (const long i) const |
Access all parameters in the order they were inputted. | |
RefinablePar & | GetPar (const string &name) |
Access all parameters from their name. | |
const RefinablePar & | GetPar (const string &name) const |
Access all parameters from their name. | |
RefinablePar & | GetPar (const REAL *) |
Access parameter from its adress. | |
const RefinablePar & | GetPar (const REAL *) const |
Access parameter from its adress. | |
RefinablePar & | GetParNotFixed (const long i) |
Access all parameters in the order they were inputted, skipping fixed parameters. More... | |
const RefinablePar & | GetParNotFixed (const long i) const |
Access all parameters in the order they were inputed, skipping fixed parameters. More... | |
void | AddPar (const RefinablePar &newRefPar) |
Add a refinable parameter. More... | |
void | AddPar (RefinablePar *newRefPar) |
Add a refinable parameter. More... | |
void | AddPar (RefinableObj &newRefParList, const bool copyParam=false) |
Add all the parameters in another RefinableObj. More... | |
vector< RefinablePar * >::iterator | RemovePar (RefinablePar *refPar) |
Remove a refinable parameter. More... | |
virtual void | Print () const |
unsigned long | CreateParamSet (const string name="") const |
Save the current set of refined values in a new set. More... | |
void | ClearParamSet (const unsigned long id) const |
Erase the param set with the given id, releasing memory. | |
void | SaveParamSet (const unsigned long id) const |
Save the current set of refined values over a previously-created set of saved values. More... | |
void | RestoreParamSet (const unsigned long id) |
Restore a saved set of values. More... | |
const CrystVector_REAL & | GetParamSet (const unsigned long setId) const |
Access one save refpar set. More... | |
CrystVector_REAL & | GetParamSet (const unsigned long setId) |
Access one save refpar set. More... | |
REAL | GetParamSet_ParNotFixedHumanValue (const unsigned long setId, const long parNumber) const |
Access the (human) value of one refined parameter in a saved set of parameters. More... | |
const void | EraseAllParamSet () |
Erase all saved refpar sets. More... | |
const string & | GetParamSetName (const unsigned long setId) const |
Get the name associated to a refpar set. More... | |
void | SetLimitsAbsolute (const string &parName, const REAL min, const REAL max) |
Change the limits for a given parameter, giving absolute new limits. | |
void | SetLimitsAbsolute (const RefParType *type, const REAL min, const REAL max) |
Change the limits for a category of parameters, giving absolute new limits. | |
void | SetLimitsRelative (const string &parName, const REAL min, const REAL max) |
Change the limits for a given parameter, giving relative new limits (eg giving -.1 and +.1 will set new limits at the current value + min and current value + max) Thus min should logically be <0 and max >0. More... | |
void | SetLimitsRelative (const RefParType *type, const REAL min, const REAL max) |
Change the limits for a category of parameters, giving relative new limits (eg giving -.1 and +.1 will set new limits at the current value + min and current value + max). More... | |
void | SetLimitsProportional (const string &parName, const REAL min, const REAL max) |
Change the limits for a given parameter, proportionnaly to the current value. More... | |
void | SetLimitsProportional (const RefParType *type, const REAL min, const REAL max) |
Change the limits for a category of parameters, proportionnaly to their current value. More... | |
void | SetGlobalOptimStep (const RefParType *type, const REAL step) |
Change the maximum step to use during Global Optimization algorithms. | |
ObjRegistry< RefinableObj > & | GetSubObjRegistry () |
Access to the registry of RefinableObj used by this object. | |
const ObjRegistry< RefinableObj > & | GetSubObjRegistry () const |
Access to the registry of RefinableObj used by this object. | |
virtual void | RegisterClient (RefinableObj &) const |
Register a new object using this object. More... | |
virtual void | DeRegisterClient (RefinableObj &) const |
Deregister an object (which not any more) using this object. | |
virtual const ObjRegistry < RefinableObj > & | GetClientRegistry () const |
Get the list of clients. | |
virtual ObjRegistry < RefinableObj > & | GetClientRegistry () |
Get the list of clients. | |
bool | IsBeingRefined () const |
Is the object being refined ? (Can be refined by one algorithm at a time only.) | |
virtual void | EndOptimization () |
This should be called by any optimization class at the end of an optimization. More... | |
virtual void | SetApproximationFlag (const bool allow) |
Enable or disable numerical approximations. More... | |
virtual void | RandomizeConfiguration () |
Randomize Configuration (before a global optimization). More... | |
void | BeginGlobalOptRandomMove () |
Raise a flag, to be sure not to make a random change more than once in each RefinableObj. More... | |
virtual REAL | GetLogLikelihood () const |
Get -log(likelihood) of the current configuration for the object. More... | |
virtual unsigned int | GetNbLSQFunction () const |
Number of LSQ functions. | |
virtual const CrystVector_REAL & | GetLSQCalc (const unsigned int) const |
Get the current calculated value for the LSQ function. | |
virtual const CrystVector_REAL & | GetLSQObs (const unsigned int) const |
Get the observed values for the LSQ function. | |
virtual const CrystVector_REAL & | GetLSQWeight (const unsigned int) const |
Get the weight values for the LSQ function. | |
virtual const CrystVector_REAL & | GetLSQDeriv (const unsigned int, RefinablePar &) |
Get the first derivative values for the LSQ function, for a given parameter. More... | |
virtual std::map< RefinablePar *, CrystVector_REAL > & | GetLSQ_FullDeriv (const unsigned int, std::set< RefinablePar * > &vPar) |
Get the first derivative for the LSQ function for each parameter supplied in a list. More... | |
void | ResetParList () |
Re-init the list of refinable parameters, removing all parameters. More... | |
virtual void | UpdateDisplay () const |
If there is an interface, this should be automatically be called each time there is a 'new, significant' configuration to report. More... | |
unsigned int | GetNbOption () const |
Number of Options for this object. | |
RefObjOpt & | GetOption (const unsigned int i) |
Access to the options. | |
const RefObjOpt & | GetOption (const unsigned int i) const |
const access to the options | |
virtual void | GetGeneGroup (const RefinableObj &obj, CrystVector_uint &groupIndex, unsigned int &firstGroup) const |
Get the gene group assigned to each parameter. More... | |
void | SetDeleteRefParInDestructor (const bool b) |
Set this object not to delete its list of parameters when destroyed. More... | |
const RefinableObjClock & | GetRefParListClock () const |
What was the last time a RefinablePar was added/removed ? More... | |
virtual REAL | GetRestraintCost () const |
Get the restraint cost (overall penalty of all restraints) More... | |
void | AddRestraint (Restraint *pNewRestraint) |
Add a new restraint. More... | |
vector< Restraint * >::iterator | RemoveRestraint (Restraint *pRestraint) |
Remove a restraint from the list of known restraints. More... | |
virtual void | TagNewBestConfig () const |
During a global optimization, tells the object that the current config is the latest "best" config. More... | |
const RefinableObjClock & | GetClockMaster () const |
This clocks records any change in the object. See refinableObj::mClockMaster. | |
Public Attributes | |
REAL | mEPR [6] |
Protected Member Functions | |
virtual void | CalcCorr () const |
Do the computation of corrected intensities. More... | |
Protected Member Functions inherited from ObjCryst::RefinableObj | |
long | FindPar (const string &name) const |
Find a refinable parameter with a given name. | |
long | FindPar (const REAL *) const |
Find a refinable parameter from the adress of its value. | |
void | AddSubRefObj (RefinableObj &) |
void | RemoveSubRefObj (RefinableObj &) |
void | AddOption (RefObjOpt *opt) |
virtual void | Prepare () |
map< unsigned long, pair < CrystVector_REAL, string > >::iterator | FindParamSet (unsigned long id) const |
Find a parameter set with a given id (and check if it is there) | |
Protected Attributes | |
RefinableObjClock | mClockTextureEllipsoidPar |
unsigned long | mNbReflUsed |
Number of reflexion for which the calculation is actually done. More... | |
Protected Attributes inherited from ObjCryst::ScatteringCorr | |
const ScatteringData * | mpData |
The associated ScatteringData object. | |
CrystVector_REAL | mCorr |
The vector of correction to intensities. | |
RefinableObjClock | mClockCorrCalc |
The clock marking the last time the correction was calculated. | |
Protected Attributes inherited from ObjCryst::RefinableObj | |
string | mName |
Name for this RefinableObject. Should be unique, at least in the same scope.+. | |
vector< RefinablePar * > | mvpRefPar |
Vector of pointers to the refinable parameters. | |
vector< Restraint * > | mvpRestraint |
Vector of pointers to the restraints for this object. More... | |
map< unsigned long, pair < CrystVector_REAL, string > > | mvpSavedValuesSet |
Map of (index,pointers to arrays) used to save sets of values for all parameters. More... | |
long | mNbRefParNotFixed |
Total of not-fixed parameters. | |
CrystVector_long | mRefparNotFixedIndex |
Index of not-fixed parameters. | |
int | mOptimizationDepth |
Is the object being refined or optimized ? if mOptimizationDepth=0, no optimization is taking place. More... | |
ObjRegistry< RefinableObj > | mSubObjRegistry |
Registry of RefinableObject needed for this object (owned by this object or not) | |
ObjRegistry< RefinableObj > | mClientObjRegistry |
Registry of RefinableObject using this object. More... | |
ObjRegistry< RefObjOpt > | mOptionRegistry |
List of options for this object. More... | |
bool | mDeleteRefParInDestructor |
If true (the default), then all RefinablePar will be deleted when the the object is deleted. More... | |
RefinableObjClock | mRefParListClock |
Last time the RefinableParList was modified (a parameter added or removed). | |
bool | mRandomMoveIsDone |
CrystVector_REAL | mLSQDeriv |
Temporary array used to return derivative values of the LSQ function for given parameters. More... | |
std::map< unsigned int, std::map< RefinablePar *, CrystVector_REAL > > | mLSQ_FullDeriv |
Temporary map to return the derivative of the LSQ function versus a list of parameters. More... | |
RefinableObjClock | mClockMaster |
Master clock, which is changed whenever the object has been altered. More... | |
Texture correction using the Ellipsoidal preferred orientation function.
Icorr = Iobs[ 1 + (EPR1*h^2 + EPR2*k^2 + EPR3*l^2 + EPR4*2hk + EPR5*2hl + EPR6*2kl) * 0.001d^2 ]^-1.5
Definition at line 208 of file ScatteringCorr.h.
|
virtual |
This should be called by any optimization class at the begining of an optimization.
This will also check that everything is ready, eg call the RefinableObj::Prepare() function. This also affects all sub-objects.
allowApproximations | if true, then the object can use faster but less precise functions during the optimization. This is useful for global optimization not using derivatives. |
enableRestraints | xrefitem deprecated 28. |
Reimplemented from ObjCryst::RefinableObj.
Definition at line 908 of file ScatteringCorr.cpp.
|
protectedvirtual |
Do the computation of corrected intensities.
mCorr=1.0; Icorr = Iobs[1 + (EPR1*h^2 + EPR2*k^2 + EPR3*l^2 + EPR4*2hk + EPR5*2hl + EPR6*2kl) * 0.001d^2]^-1.5
Implements ObjCryst::ScatteringCorr.
Definition at line 914 of file ScatteringCorr.cpp.
|
virtual |
Make a random move of the current configuration.
This is for global optimization algorithms. the moves for each parameter are less than their global optimization step, multiplied by the mutation amplitude.
mutationAmplitude | multiplier for the maximum move amplitude, for all parameters |
type | restrain the change exclusively to parameters of a given type (same type or descendant from this RefParType). |
Reimplemented from ObjCryst::RefinableObj.
Definition at line 794 of file ScatteringCorr.cpp.
void ObjCryst::TextureEllipsoid::UpdateEllipsoidPar | ( | ) |
Update ellipsoid parameters for tetragonal, trigonal, hexagonal, cubic lattices.
This is needed during Refinement, since for example in a quadratic spg, only a is refined and we need to have b=a...
Definition at line 968 of file ScatteringCorr.cpp.
|
virtual |
Input From stream.
Reimplemented from ObjCryst::RefinableObj.
Definition at line 850 of file ScatteringCorr.cpp.
|
virtual |
Output to stream in well-formed XML.
Reimplemented from ObjCryst::RefinableObj.
Definition at line 820 of file ScatteringCorr.cpp.
|
mutableprotected |
Number of reflexion for which the calculation is actually done.
This is automaticaly updated during CalcCorr, from the parent ScatteringData::GetMaxSinThetaOvLambda()
Definition at line 234 of file ScatteringCorr.h.