Ticket #9842 (closed: fixed)

Opened 6 years ago

Last modified 5 years ago

Create an algorithm for running MC absorption with hollow cylinder can

Reported by: Martyn Gigg Owned by: Martyn Gigg
Priority: major Milestone: Release 3.3
Component: Framework Keywords:
Cc: Blocked By:
Blocking: Tester: Pete Peterson

Description

Primary use for WISH:

  • Aluminium can: In the experiment, I remember we chose to use Al-can

whose dimension are 22mm O/D, 18.4mm I/D For the more details, you may need to discuss with the can-maker.

  • Sample thickness: it was about 0.9 mm including Al-sachet. For sample only, it would be about 0.5 mm.
  • Sample height: it was about 40 mm including Al-sachet. For sample only, it would be about 38 mm.
  • Mass : 710 mg
  • Absorption cross-sections from NIST [barns= 10-24cm2] : Li=70.5 barns, Ir=425 barns, O=0 barns

http://www.ncnr.nist.gov/resources/n-lengths/list.html

  • density: 7.58622 g/cm3
  • relative molecular mass of the sample (Li2IrO3) : 254.1 g/mole

Change History

comment:8 Changed 6 years ago by Nick Draper

  • Status changed from new to assigned

comment:34 Changed 6 years ago by Martyn Gigg

Lose structure for algorithm.

Refs #9842

Changeset: f83ab8f607ef724411eb389cee314e53804f0e70

comment:35 Changed 6 years ago by Martyn Gigg

Properties for sample/can geometry & can material.

Refs #9842

Changeset: a684d55a33b240fd3e5dfcc0a27123fbf36bc9cc

comment:36 Changed 6 years ago by Martyn Gigg

Refactoring to separate out xml creation for each shape.

It replaces Poco::format with the more flexible boost::format. Refs #9842

Changeset: 1887c3107bc02d5b6978e157d5b8b7f2057f6bbf

comment:37 Changed 6 years ago by Martyn Gigg

Run set sample material

Refs #9842

Changeset: d9854d8c417977100cef0d21b04d2c204e5ff0c1

comment:38 Changed 6 years ago by Martyn Gigg

Define sample shape from inputs.

Refs #9842

Changeset: 858cbe8fd319fa05c5e2fb841a0b9dcdff8f7e53

comment:39 Changed 6 years ago by Martyn Gigg

Run MonteCarloAbsorption algorithm on workspace.

Tests don't pass yet due to problems in Monte Carlo algorithm. Refs #9842

Changeset: 065bf15f70258ce4129291fe664acc17119ca5d6

comment:40 Changed 6 years ago by Martyn Gigg

Bare bones documentation file.

Refs #9842

Changeset: ba485e1da59480fb36c69b24ef1b3764c34ef629

comment:41 Changed 6 years ago by Martyn Gigg

Fix indentation & whitespace. No code changes.

Refs #9842

Changeset: a380bd0e8ed319f5ad862e8de4f1bad91df796e9

comment:42 Changed 6 years ago by Martyn Gigg

Alter approach to generating random point in sample/container.

For hollow shapes the old approach was very inefficient. The new method chops up the sample into discrete boxes and first samples the boxes and then inside a box. There is also a possibility of improving it further by first removing the boxes that are in a hollow part of the object at the caching step but this will be done later. Refs #9842

Changeset: 6da1f239dee4f6da90b266ec0fedf97a582520bc

comment:43 Changed 6 years ago by Martyn Gigg

Checkpoint sample-block performance improvements.

Refs #9842

Changeset: 63ac15623f7bfe3e103b1010d3118966e4301648

comment:44 Changed 6 years ago by Martyn Gigg

Implement hollow can as simple cylindrical sample.

Refs #9842

Changeset: 5f914600fcda726fbe06f8924eaa9d6f89b5dc75

comment:45 Changed 6 years ago by Martyn Gigg

Improve performance of Sphere::side

Remove temporary V3D constructions. Refs #9842

Changeset: ba44c66a51d86af82e10f90fe46765a3a59b9907

comment:46 Changed 6 years ago by Martyn Gigg

Cache pointers to SampleEnvironment children

Avoids constant dynamic casting when checking against points & rays. Refs #9842

Changeset: 52a7fdfafad4b223d219c6ba55a06da661a3631c

comment:47 Changed 6 years ago by Martyn Gigg

Performance improvements in MonteCarloAbsorption

Avoid constructing unnecessary V3Ds and exit early if a point is found to be in a block rather than checking everyting. Refs #9842

Changeset: babc40e279f7f36e6104c739c0c79d6da234e1db

comment:48 Changed 6 years ago by Martyn Gigg

Store a reference to the intersected object in a Track link

This should avoid having to go through the object component to get access to the shape when testing for intersections. Refs #9842

Changeset: 1638b974fa7b3f4175b933fbf785645248b45b30

comment:49 Changed 6 years ago by Martyn Gigg

Put Geometry::Object back to storing the material.

Refs #9842

Changeset: f08c20e4dff6e7a6c735567e4dc824135f578bef

comment:50 Changed 6 years ago by Martyn Gigg

Remove material from Sample as it is now stored with the Object.

Refs #9842

Changeset: de4bb24a05e5e687887b91447cc9259b8a820fc4

comment:51 Changed 6 years ago by Martyn Gigg

Simplify SampleEnvironment to be a collection of Objects

This offers a massive performance improvement for repeated intersection calculations as it removes he need to consider the absolute location of the components. It is also more consistent with the way the sample shape is dealt with as that does not catre about absolute location either. The location is defined within the instrument. Refs #9842

Changeset: 08fbd7ca3f90d51f39387ec3e06d9677f520b0db

comment:52 Changed 6 years ago by Martyn Gigg

Parallelize MonteCarloAbsorption algorithm.

Uses a separate random number generator per thread. This way the results are always reproducible. Refs #9842

Changeset: 50d4a000d68be03d62a657660298325d5c92992c

comment:21 Changed 6 years ago by Martyn Gigg

  • Status changed from assigned to inprogress

Fix a doxygen errors across several files related to latex.

Refs #9842

Changeset: 59347cc1649e6ec9c8eea3196739dafad99b3701

comment:22 Changed 6 years ago by Martyn Gigg

Documentation for the new algorithm with an example.

Refs #9842

Changeset: 89597ba7199b61ba3659909e6d97c0c0d0b005c7

comment:23 Changed 6 years ago by Martyn Gigg

Merge branch 'master' into feature/9842_mc_absorb_hollow_cylinder

Conflicts:

Code/Mantid/Framework/Geometry/CMakeLists.txt

Refs #9842

Changeset: 5a53148ba66344bc57c3ffc5cf2b8120c0378a92

comment:24 Changed 6 years ago by Martyn Gigg

Fix Geometry CMakeLists after class removal.

Refs #9842

Changeset: 5c209bef90d47644fb4afbcbba3a1505b7e869f5

comment:25 Changed 6 years ago by Martyn Gigg

Fix errors from a bad rebase

Refs #9842

Changeset: 60f11b5091922d46d0f6e8c66f007e1dab2beb47

comment:26 Changed 6 years ago by Martyn Gigg

Fix subtle bug in CopySample introduced by combining Object/Material.

Refs #9842

Changeset: 243f8ffbab3b8c23c720cd6037d4bfa2dea42d42

comment:27 Changed 6 years ago by Martyn Gigg

Remove Sample::setMaterial member

Avoids ambiguity about where the Material is actually stored. Refs #9842

Changeset: 86a7a5942e5d5a66e229446c4a80d4d39061cce7

comment:28 Changed 6 years ago by Martyn Gigg

Allow the Sample shape to be returned to its default state.

Refs #9842

Changeset: 3afa1e48fe3247c5afc7dda7713b50110e40a69b

comment:29 Changed 6 years ago by Martyn Gigg

Fix LoadHKL, SaveHKL and SortHKL after sample changes.

Refs #9842

Changeset: b4026505afb7ec16c36c6a5d2d54bab764573bf4

comment:30 Changed 6 years ago by Martyn Gigg

Fix MonteCarloAbsorption for systems without emplace_back.

Refs #9842

Changeset: 5110eef819efab13d548d8462b10922c4d9efeac

comment:31 Changed 6 years ago by Martyn Gigg

Avoid intel compiler problem with continue and omp loops

Refs #9842

Changeset: 7e23f2b022c2035a7a35be69aba33be97f9d9b94

comment:32 Changed 6 years ago by Martyn Gigg

  • Status changed from inprogress to verify
  • Resolution set to fixed

comment:33 Changed 6 years ago by Martyn Gigg

  • Summary changed from Create an algorithm for running MC absorption with hollow cylinder + sachet sample holder to Create an algorithm for running MC absorption with hollow cylinder can

comment:34 Changed 6 years ago by Martyn Gigg

This is being verified as pull request #42.

comment:35 Changed 6 years ago by Pete Peterson

  • Status changed from verify to verifying
  • Tester set to Pete Peterson

comment:36 Changed 6 years ago by Martyn Gigg

A chat on slack has convinced me that a better name for the algorithm would be *AnnularRingAbsorption* so I'll update the name to that.

comment:37 Changed 6 years ago by Martyn Gigg

It would appear that the clang is not happy with the MonteCarloAbsorption test. This should be fixed as we've only just got it working!

comment:38 Changed 6 years ago by Martyn Gigg

Change HollowCanMonteCarloAbsorption name to AnnularRingAbsorption

Its a better fit for what the algorithm does. Refs #9842

Changeset: 603d0a113f38b2d90d16747c9010f0a35ef72fec

comment:39 Changed 6 years ago by Martyn Gigg

Use a single thread for MonteCarloAborption tests

The numbers are then reproducible across all environments. Refs #9842

Changeset: 84f2670b119fbbc1a01c4f80ef71159935fb103e

comment:40 Changed 6 years ago by Martyn Gigg

  • Status changed from verifying to closed

Merge branch 'master' into feature/9842_mc_absorb_hollow_cylinder

Full changeset: 49ce217641eb641a50d5711ff6c1612b98d16b85

comment:41 Changed 6 years ago by Martyn Gigg

Merge branch 'master' into feature/9842_mc_absorb_hollow_cylinder

Conflicts:

Code/Mantid/Framework/Geometry/CMakeLists.txt

Refs #9842

Full changeset: 5a53148ba66344bc57c3ffc5cf2b8120c0378a92

comment:42 Changed 6 years ago by Pete Peterson

Merge pull request #42 from mantidproject/feature/9842_mc_absorb_hollow_cylinder

This is fine. I created #10379(http://trac.mantidproject.org/mantid/ticket/10379) for an improvement to this and related algorithms.

Full changeset: 766556e529fcf5c53a63eb195a8902eefa6931e7

comment:43 Changed 6 years ago by Pete Peterson

This is fine. I've created #10379(http://trac.mantidproject.org/mantid/ticket/10379) for future improvements.

comment:44 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 10684

Note: See TracTickets for help on using tickets.