MStruct++
 All Classes Namespaces Functions Variables Typedefs Enumerations Friends Pages
Public Member Functions | Protected Member Functions | Protected Attributes
MStruct::RandomSizeDistribBroadeningEffect Class Reference

#include <MStruct.h>

Inheritance diagram for MStruct::RandomSizeDistribBroadeningEffect:
MStruct::ReflectionProfileComponent ObjCryst::RefinableObj

List of all members.

Public Member Functions

 RandomSizeDistribBroadeningEffect ()
 Constructor.
virtual const string & GetClassName () const
 Name for this class ("MStruct::RandomSizeDistribBroadeningEffect")
void SetDistribution (const int Nbins=20, const REAL Dmax=1.e3, const CrystVector_REAL &distrib=CrystVector_REAL(0))
 Set new distribution.
void GenerateRandomDistrib ()
 Generate random distribution.
virtual void GlobalOptRandomMove (const REAL mutationAmplitude, const ObjCryst::RefParType *type=ObjCryst::gpRefParTypeObjCryst)
 TODO:: comment here.
virtual CrystVector_REAL GetProfile (const CrystVector_REAL &x, const REAL xcenter, const REAL h, const REAL k, const REAL l)
virtual REAL GetApproxFWHM (const REAL xcenter, const REAL h, const REAL k, const REAL l) const
virtual bool IsRealSpaceType () const
- Public Member Functions inherited from MStruct::ReflectionProfileComponent
virtual void SetParentReflectionProfile (const ReflectionProfile &)
virtual const ReflectionProfileGetParentReflectionProfile () const
virtual bool IsAnisotropic () const
virtual REAL GetPositionCorr (const REAL xcenter, const REAL h, const REAL k, const REAL l) const
- Public Member Functions inherited from ObjCryst::RefinableObj
 RefinableObj (const bool internalUseOnly)
 RefinableObj (const RefinableObj &old)
virtual const string & GetName () const
virtual void SetName (const string &name)
void operator= (const RefinableObj &old)
void PrepareForRefinement () const
void FixAllPar ()
void UnFixAllPar ()
void SetParIsFixed (const long parIndex, const bool fix)
void SetParIsFixed (const string &parName, const bool fix)
void SetParIsFixed (const RefParType *type, const bool fix)
void SetParIsUsed (const string &parName, const bool use)
void SetParIsUsed (const RefParType *type, const bool use)
long GetNbPar () const
long GetNbParNotFixed () const
RefinableParGetPar (const long i)
const RefinableParGetPar (const long i) const
RefinableParGetPar (const string &name)
const RefinableParGetPar (const string &name) const
RefinableParGetPar (const REAL *)
const RefinableParGetPar (const REAL *) const
long GetParIndex (const string &name, const bool nothrow=false) const
long GetParIndex (const REAL *, const bool nothrow=false) const
RefinableParGetParNotFixed (const long i)
const RefinableParGetParNotFixed (const long i) const
void AddPar (const RefinablePar &newRefPar)
void AddPar (RefinablePar *newRefPar)
void AddPar (RefinableObj &newRefParList, const bool copyParam=false)
vector< RefinablePar * >::iterator RemovePar (RefinablePar *refPar)
virtual void Print () const
unsigned long CreateParamSet (const string name="") const
void ClearParamSet (const unsigned long id) const
void SaveParamSet (const unsigned long id) const
void RestoreParamSet (const unsigned long id)
const CrystVector_REAL & GetParamSet (const unsigned long setId) const
CrystVector_REAL & GetParamSet (const unsigned long setId)
REAL GetParamSet_ParNotFixedHumanValue (const unsigned long setId, const long parNumber) const
const void EraseAllParamSet ()
const string & GetParamSetName (const unsigned long setId) const
void SetLimitsAbsolute (const string &parName, const REAL min, const REAL max)
void SetLimitsAbsolute (const RefParType *type, const REAL min, const REAL max)
void SetLimitsRelative (const string &parName, const REAL min, const REAL max)
void SetLimitsRelative (const RefParType *type, const REAL min, const REAL max)
void SetLimitsProportional (const string &parName, const REAL min, const REAL max)
void SetLimitsProportional (const RefParType *type, const REAL min, const REAL max)
void SetGlobalOptimStep (const RefParType *type, const REAL step)
ObjRegistry< RefinableObj > & GetSubObjRegistry ()
const ObjRegistry< RefinableObj > & GetSubObjRegistry () const
virtual void RegisterClient (RefinableObj &) const
virtual void DeRegisterClient (RefinableObj &) const
virtual const ObjRegistry
< RefinableObj > & 
GetClientRegistry () const
virtual ObjRegistry
< RefinableObj > & 
GetClientRegistry ()
bool IsBeingRefined () const
virtual void BeginOptimization (const bool allowApproximations=false, const bool enableRestraints=false)
virtual void EndOptimization ()
virtual void SetApproximationFlag (const bool allow)
virtual void RandomizeConfiguration ()
void BeginGlobalOptRandomMove ()
virtual REAL GetLogLikelihood () const
virtual unsigned int GetNbLSQFunction () const
virtual const CrystVector_REAL & GetLSQCalc (const unsigned int) const
virtual const CrystVector_REAL & GetLSQObs (const unsigned int) const
virtual const CrystVector_REAL & GetLSQWeight (const unsigned int) const
virtual const CrystVector_REAL & GetLSQDeriv (const unsigned int, RefinablePar &)
void ResetParList ()
virtual void XMLOutput (ostream &os, int indent=0) const
virtual void XMLInput (istream &is, const XMLCrystTag &tag)
virtual void UpdateDisplay () const
unsigned int GetNbOption () const
RefObjOptGetOption (const unsigned int i)
const RefObjOptGetOption (const unsigned int i) const
virtual void GetGeneGroup (const RefinableObj &obj, CrystVector_uint &groupIndex, unsigned int &firstGroup) const
void SetDeleteRefParInDestructor (const bool b)
const RefinableObjClockGetRefParListClock () const
virtual REAL GetRestraintCost () const
void AddRestraint (Restraint *pNewRestraint)
vector< Restraint * >::iterator RemoveRestraint (Restraint *pRestraint)
virtual void TagNewBestConfig () const
const RefinableObjClockGetClockMaster () const

Protected Member Functions

void Init ()
 Initialize RefinableObj parameters.

Protected Attributes

int mNbins
 Number of bins between 0 and Dmax representing the crystallites size distribution.
REAL mBinWidth
 Width of the bin representing the crystallites size distribution, Width = Dmax/Nbins.
CrystVector_REAL mDistrib
 Vector representing crystallites size distribution P(i)
ObjCryst::RefinableObjClock mClockReflProfCalc
 Clock when reflection profile was calculated last time.
- Protected Attributes inherited from MStruct::ReflectionProfileComponent
const ReflectionProfilempParentReflectionProfile
- Protected Attributes inherited from ObjCryst::RefinableObj
string mName
vector< RefinablePar * > mvpRefPar
vector< Restraint * > mvpRestraint
map< unsigned long, pair
< CrystVector_REAL, string > > 
mvpSavedValuesSet
long mNbRefParNotFixed
CrystVector_long mRefparNotFixedIndex
int mOptimizationDepth
ObjRegistry< RefinableObjmSubObjRegistry
ObjRegistry< RefinableObjmClientObjRegistry
ObjRegistry< RefObjOptmOptionRegistry
bool mDeleteRefParInDestructor
RefinableObjClock mRefParListClock
bool mRandomMoveIsDone
CrystVector_REAL mLSQDeriv
RefinableObjClock mClockMaster

Detailed Description

RandomSizeDistribBroadeningEffect : This provides reflection profile calculation from spherical crystallites with randomly distrubuted diameter D.

Distribution of crystallites size diameter D is defined in the N bins between D=0 and D=Dmax. The bin width is dD=Dmax/N. The distribution is represented by a probability P(i) of finding P crystallites with size in the i-th bin (D lies in the interval i*dD + (0,dD) ). This probability P(i) is distributed uniformly in each bin independently of others bins and it is normalised that sum(i=0..N-1, P(i)*dD)==1 holds.

Definition at line 844 of file MStruct.h.


Member Function Documentation

void MStruct::RandomSizeDistribBroadeningEffect::GenerateRandomDistrib ( )

Generate random distribution.

Generate random distribution: a random value P(i) representiing the crystallite size distrution is choosen from an uniform distribution for each bin independently on other bins. Aftervards the values P(i) in all bins are normalised so sum(i=0..Nbins-1, P(i)*BinWidth)==1 holds.

Definition at line 4597 of file MStruct.cpp.

void MStruct::RandomSizeDistribBroadeningEffect::SetDistribution ( const int  Nbins = 20,
const REAL  Dmax = 1.e3,
const CrystVector_REAL &  distrib = CrystVector_REAL(0) 
)

Set new distribution.

Parameters:
Nbins: number of bins in which the interval of crystallite size D is divided.
Dmax: crystallite sizes are distributed in the interval (0,Dmax) (in nm)
distrib: vector of length Nbins containing initial distribution (optional)

Definition at line 4544 of file MStruct.cpp.


The documentation for this class was generated from the following files: