Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   Namespace Members   Compound Members   Related Pages  

ObjCryst::TextureMarchDollase Class Reference

Texture correction using the March-Dollase model. More...

Inheritance diagram for ObjCryst::TextureMarchDollase:

ObjCryst::ScatteringCorr ObjCryst::RefinableObj List of all members.

Public Methods

virtual const string & GetName () const
 Get the name of this object.

virtual const string & GetClassName () const
 Get the name of the class.

virtual void GlobalOptRandomMove (const REAL mutationAmplitude, const RefParType *type=gpRefParTypeObjCryst)
 Make a random move of the current configuration.

virtual void XMLOutput (ostream &os, int indent=0) const
 Output to stream in well-formed XML.

virtual void XMLInput (istream &is, const XMLCrystTag &tag)
 Input From stream.

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.

virtual void TagNewBestConfig () const
 During a global optimization, tells the object that the current config is the latest "best" config.


Protected Methods

virtual void CalcCorr () const
 Do the computation of corrected intensities.


Protected Attributes

unsigned long mNbReflUsed
 Number of reflexion for which the calculation is actually done.


Detailed Description

Texture correction using the March-Dollase model.

This can include several phases.


Member Function Documentation

virtual void ObjCryst::TextureMarchDollase::BeginOptimization const bool    allowApproximations = false,
const bool    enableRestraints = false
[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.

Note:
this may be called several time for some objects which are used by several other objects.
Parameters:
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:  if true, then restrained parameters will be allowed to go beyond theur hard limits. This implies that the algorithm will take into account the cost (penalty) related to the restraints. Objects which do not use restraints will simply ignore this. WARNING: this parameter may be removed with the new likelihood scheme.

Reimplemented from ObjCryst::RefinableObj.

virtual void ObjCryst::TextureMarchDollase::GlobalOptRandomMove const REAL    mutationAmplitude,
const RefParType   type = gpRefParTypeObjCryst
[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.

\warning: this makes a random move for the parameter declared for this object, and it is the duty of the object to decide whether the included objects should be moved and how. (eg an algorithm should only call for a move with the top object, and this object decides how he and his sub-objects moves). By default (RefinableObj implementation) all included objects are moved recursively.

RefinableObj::

Parameters:
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.

virtual void ObjCryst::TextureMarchDollase::TagNewBestConfig   [virtual]
 

During a global optimization, tells the object that the current config is the latest "best" config.

This can be used by the object to make more intellingent random moves (use with caution: highly experimental !).

Reimplemented from ObjCryst::RefinableObj.

virtual void ObjCryst::TextureMarchDollase::XMLInput istream &    is,
const XMLCrystTag   tag
[virtual]
 

Input From stream.

Todo:
Add an bool XMLInputTag(is,tag) function to recognize all the tags from the stream. So that each inherited class can use the XMLInputTag function from its parent (ie take advantage of inheritance). The children class would first try to interpret the tag, then if unsuccessful would pass it to its parent (thus allowing overloading), etc...

Reimplemented from ObjCryst::RefinableObj.

virtual void ObjCryst::TextureMarchDollase::XMLOutput ostream &    os,
int    indent = 0
const [virtual]
 

Output to stream in well-formed XML.

Todo:
Use inheritance.. as for XMLInputTag()...

Reimplemented from ObjCryst::RefinableObj.


Member Data Documentation

unsigned long ObjCryst::TextureMarchDollase::mNbReflUsed [protected]
 

Number of reflexion for which the calculation is actually done.

This is automaticaly updated during CalcCorr, from the parent ScatteringData::GetMaxSinThetaOvLambda()


The documentation for this class was generated from the following file:
Generated on Wed Jun 25 23:26:27 2003 for ObjCryst++ by doxygen1.2.18