Skip to content
Snippets Groups Projects
Commit 50c0ca3e authored by Van Herck, Walter's avatar Van Herck, Walter
Browse files

Fixed rotated mesocrystal form factors

parent 965b1907
No related branches found
No related tags found
No related merge requests found
......@@ -88,7 +88,6 @@ void TestMesoCrystal2::draw_results()
initializeSimulation(m_real_data);
ParameterPool *pool = m_sample_builder->createParameterTree();
std::cout << *pool << std::endl;
// pool->setMatchedParametersValue("*/lattice_length_a", 6.2e+00); // 6.2
// pool->setMatchedParametersValue("*/lattice_length_c", 6.2e+00); // 6.2
// pool->setMatchedParametersValue("*/nanoparticle_radius", 5.7e+00); // 5.7
......@@ -106,18 +105,19 @@ void TestMesoCrystal2::draw_results()
// IsGISAXSTools::drawOutputDataComparisonResults(*m_simulation->getOutputData(), *m_real_data, "initial", "initial params", 100, 1e6, 100);
pool->setMatchedParametersValue("*/lattice_length_a", 6.2091e+00); // 6.2
pool->setMatchedParametersValue("*/lattice_length_c", 6.5677e+00); // 6.2
pool->setMatchedParametersValue("*/nanoparticle_radius", 4.6976e+00); // 5.7
pool->setMatchedParametersValue("*/sigma_nanoparticle_radius", 3.6720e-01); // 0.1
pool->setMatchedParametersValue("*/meso_height", 1.1221e+02); // 0.1
pool->setMatchedParametersValue("*/meso_radius", 9.4567e+02); // 0.1
pool->setMatchedParametersValue("*/sigma_meso_height", 1.3310e+00); // 0.1
pool->setMatchedParametersValue("*/sigma_meso_radius", 1.3863e+00); // 0.1
pool->setMatchedParametersValue("*/sigma_lattice_length_a", 1.1601e+00); // 1.5
pool->setMatchedParametersValue("*/surface_filling_ratio", 1.7286e-01); // 0.25
pool->setMatchedParametersValue("*/roughness", 2.8746e+01); // 1.0
m_sample_builder->setMatchedParametersValue("*/lattice_length_a", 6.2091e+00); // 6.2
m_sample_builder->setMatchedParametersValue("*/lattice_length_c", 6.5677e+00); // 6.2
m_sample_builder->setMatchedParametersValue("*/nanoparticle_radius", 4.6976e+00); // 5.7
m_sample_builder->setMatchedParametersValue("*/sigma_nanoparticle_radius", 3.6720e-01); // 0.1
m_sample_builder->setMatchedParametersValue("*/meso_height", 1.1221e+02); // 0.1
m_sample_builder->setMatchedParametersValue("*/meso_radius", 9.4567e+02); // 0.1
m_sample_builder->setMatchedParametersValue("*/sigma_meso_height", 1.3310e+00); // 0.1
m_sample_builder->setMatchedParametersValue("*/sigma_meso_radius", 1.3863e+00); // 0.1
m_sample_builder->setMatchedParametersValue("*/sigma_lattice_length_a", 1.1601e+00); // 1.5
m_sample_builder->setMatchedParametersValue("*/surface_filling_ratio", 1.7286e-01); // 0.25
m_sample_builder->setMatchedParametersValue("*/roughness", 2.8746e+01); // 1.0
m_simulation->setBeamIntensity(5.0090e+12);
std::cout << *pool << std::endl;
m_simulation->runSimulation();
m_simulation->normalize();
......@@ -202,7 +202,7 @@ void TestMesoCrystal2::initializeRealData()
delete m_real_data;
//std::string file_name = Utils::FileSystem::GetHomePath()+"Examples/MesoCrystals/ex02_fitspheres/004_230_P144_im_full_qyqz.txt.gz";
//std::string file_name = Utils::FileSystem::GetHomePath()+"Examples/MesoCrystals/ex02_fitspheres/004_230_P144_im_full_phitheta.txt.gz";
std::string file_name = Utils::FileSystem::GetHomePath()+"dev-tools/tmp-examples/MesoCrystals/ex02_fitspheres/004_230_P144_im_full_phitheta.txt.gz";
std::string file_name = "dev-tools/tmp-examples/MesoCrystals/ex02_fitspheres/004_230_P144_im_full_phitheta.txt.gz";
m_real_data = OutputDataIOFactory::readIntensityData(file_name);
......
......@@ -43,14 +43,22 @@ MesoCrystal::~MesoCrystal()
MesoCrystal* MesoCrystal::clone() const
{
return new MesoCrystal(mp_particle_structure->clone(),
MesoCrystal *p_result = new MesoCrystal(mp_particle_structure->clone(),
mp_meso_form_factor->clone());
if (mP_transform.get()) {
p_result->setTransform(mP_transform);
}
return p_result;
}
MesoCrystal* MesoCrystal::cloneInvertB() const
{
return new MesoCrystal(mp_particle_structure->cloneInvertB(),
MesoCrystal *p_result = new MesoCrystal(mp_particle_structure->cloneInvertB(),
mp_meso_form_factor->clone());
if (mP_transform.get()) {
p_result->setTransform(mP_transform);
}
return p_result;
}
void MesoCrystal::setAmbientMaterial(const IMaterial* p_material)
......@@ -62,9 +70,18 @@ void MesoCrystal::setAmbientMaterial(const IMaterial* p_material)
IFormFactor* MesoCrystal::createFormFactor(
complex_t wavevector_scattering_factor) const
{
return mp_particle_structure->createTotalFormFactor(
IFormFactor *p_result;
IFormFactor *p_crystal_ff = mp_particle_structure->createTotalFormFactor(
*mp_meso_form_factor, mp_ambient_material,
wavevector_scattering_factor);
if(mP_transform.get()) {
p_result = new FormFactorDecoratorTransformation(
p_crystal_ff, mP_transform);
}
else {
p_result = p_crystal_ff;
}
return p_result;
}
void MesoCrystal::setSimpleFormFactor(IFormFactor* p_form_factor)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment