summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-08-05merge headsAnthony LaTorre
2011-08-05update bounding box construction for nodes to determine each bound in a ↵Anthony LaTorre
single call by calling np.min() and np.max() along an axis
2011-08-05Fix typo in setting direction of particle from sim.py command line.Stan Seibert
2011-08-05Remove the unused load() function from Geometry class.Stan Seibert
2011-08-05Tony discovered that Inf is not a good value for a scattering length. :)Stan Seibert
2011-08-05merge with tonyStan Seibert
2011-08-05Warn user if for some reason the default BVH quantization is used becauseStan Seibert
they didn't build the geometry before loading it on the GPU.
2011-08-05--spnav option to camera.py enables camera control with aStan Seibert
locally-attached Space Navigator 3D mouse. Assumes you have the open source spacenavd and libspnav installed. (Both included in Ubuntu now.)
2011-08-05merge headsAnthony LaTorre
2011-08-05speedup bounding volume construction of leaf nodes by taking the min and max ↵Anthony LaTorre
of ungrouped instead of grouped vertices from a mesh
2011-08-05add a pi0 decay generatorAnthony LaTorre
2011-08-04ctypes module for using libspnav from pythonStan Seibert
2011-08-04First attempt at a simulation program using Chroma.Stan Seibert
Loads a geometry specified on the command line, uses GEANT4 to create initial photon vertices, propagates with Chroma, then writes the DAQ-level hit information out to a ROOT file.
2011-08-04A rootlogon.C file to load the Event dictionary when running rootStan Seibert
inside the Chroma directory. Put this in your home directory or other work directory to access Chroma ROOT files.
2011-08-04Import the fill_event() method from ROOT into the root.py namespace.Stan Seibert
2011-08-04Use the clear() method on Event to reset for filling.Stan Seibert
2011-08-04Implement propagate and daq functions in gpu module.Stan Seibert
2011-08-04Don't draw a random time delta in the daq kernel unless it is necessary.Stan Seibert
2011-08-04Add method to detectors module to locate a detector build functionStan Seibert
using the same string decorators as in camera and view.
2011-08-03Merge TonyStan Seibert
2011-08-03ROOT data structure for holding particle, photon, and hit information.Stan Seibert
2011-08-03Ignore shared library files produced by ROOT and Boost::Python.Stan Seibert
2011-08-03merge headsAnthony LaTorre
2011-08-03add a GPU class to handle both the gpu context and module; since the ↵Anthony LaTorre
geometry requires global device pointers, there should be a one to one correspondence between modules and contexts. the current plan is to perform all gpu operations within this class. also add a simple color map to display hit pmt charge and timing information.
2011-08-03GEANT4-based photon vertex generator.Stan Seibert
Propagates a particle through a huge volume of some material and harvest the photon vertices that are created for propagation with Chroma. Relies on a patched version of g4py, plus a local boost.python module that is built at import time if needed. (Does not detect changes to rebuild, however.) Chroma materials can now have a density set, as well as an elemental composition (by weight) that is used by this generator.
2011-08-03Merge with TonyStan Seibert
2011-07-30reduce number of lookup calls.Anthony LaTorre
2011-07-30you can rotate just the camera by holding the control key and take movies by ↵Anthony LaTorre
pressing the m key.
2011-07-30when throwing photons from the light source out onto the scene, photons are ↵Anthony LaTorre
now thrown randomly across each triangle instead of only at the center of each triangle. all of the rendering kernels have been rewritten so that they operate additively; for example, you may now throw photons from the light source onto the scene, render from the camera to the scene, then throw more photons and render again.
2011-07-29Add SNO acrylic and LAB+PPO scintillator to detector model.Stan Seibert
2011-07-28Alternate "real_sno" detector configuration using the CAD model of theStan Seibert
acrylic vessel. There are serious issues with this model which probably make it unsuitable for photon propagation at the moment. (Example: Why do you need to traverse 8 surfaces to cross the acrylic vessel? There should only be 4.)
2011-07-28Oops, forgot to include the reduced 8" PMT profile.Stan Seibert
2011-07-28Increase alpha depth for complex models. Remove intermediate roundingStan Seibert
to integers in alpha blending until the last step.
2011-07-28Support for reading bz2 compressed STL files.Stan Seibert
2011-07-27Merge changesStan Seibert
2011-07-27Use the more realistic SNO database and add PMT concentrators.Stan Seibert
2011-07-27camera automatically increases render quality when it is not being movedAnthony LaTorre
2011-07-26Preliminary SNO detector.Stan Seibert
PMTs in the right place and acrylic vessel. No new material properties yet.
2011-07-26added a camera class which is able to render using the simple ray tracer or ↵Anthony LaTorre
the hybrid monte carlo ray tracer in a separate thread. the camera object is initialized by passing a pycuda.driver.Context object and a threading.Lock object; you can then run kernels and copy arrays to and from the device in the same context as that used by the camera by acquiring the lock, calling context.push(), executing the kernel and/or copying arrays, calling context.pop(), and then releasing the lock. fixed mistakes in both build_rgb_lookup() and render() where I had accidently switched the green and blue photons. updated the lbne geometry with the latest specifications. added profiles for the sno pmt and concentrator.
2011-07-25moved triangle colors to a separate global device array so that the ray ↵Anthony LaTorre
tracer and photon simulation can be run in the same context. added the ability to add alpha channel to triangle color so that triangles can be made transparent. added __noinline__ modifier to certain device functions to speed up kernel compilation.
2011-07-21pull random number generator states out of the photon struct; this allows ↵Anthony LaTorre
you to copy photon information within a thread but still keep a single random number generator throughout the thread.
2011-07-21hybrid monte carlo render now distinguishes between the two different sides ↵Anthony LaTorre
of each triangle. reduced the number of runs to average when propagating photons from each pixel in render.py from 5 to 1; the speed improvement outweighs any small improvement in the quality of the rendered image.
2011-07-20in the previous commit i wrongly edited the code to reflect/transmit across ↵Anthony LaTorre
a boundary
2011-07-20pulled a lot of the photon propagation code out of src/kernel.cu into ↵Anthony LaTorre
src/photon.h so that photon propagation by propagate() in kernel.cu and the hybrid monte carlo ray tracing use the same code. instead of a single state, photons now carry the history of the processes they've undergone. this history is stored as a bitmask; see src/photon.h. start_node and first_node of the mesh are now stored as global variables in mesh.h instead of being passed to kernel functions.
2011-07-19removed STL pmt models; pmt models are now built by calling rotate_extrude() ↵Anthony LaTorre
on a profile of the PMT model (see build_pmt() in solids/pmts.py). triangle intersection now allows one of the two coefficients multiplying the vectors which span the triangle to float slightly negative (up to -EPSILON; EPSILON is defined in src/intersect.h) in order to eliminate rays passing through the line between two triangles. cleaned up a lot of unused code. pulled duplicate code in view() and render() into functions in view.py. in order to allow view.py and render.py to search pre-defined geometries, solids, meshes, etc. without requiring them to be pre-built, pre-defined geometries, solids, meshes, etc. should be returned by a function tagged by the decorator @buildable(identifier) defined in view.py, where identifier is a string used to identify the object as an argument to either view.py or render.py. optical materials and surfaces are now defined in optics.py. added an image directory to save cool screenshots.
2011-07-10added a hybrid monte carlo ray tracing rendering algorithmAnthony LaTorre
2011-06-24argument '-j' to threadtest.py now specifies a list of device ids to be ↵Anthony LaTorre
used. GPUThread objects now shallow copy the geometry so that threads are not writing to the same memory when the geometry is loaded onto the gpu. the model number for the 12" Hamamatsu PMT is R11708, not r7081 (which is the model for the 10" PMT); all references to the 12" PMT were changed accordingly. only allocate space for 20 materials and 20 surfaces on the gpu instead of 100 to save some space. started to modify track.py to build its own photons and module since the GPUThread object only copies photon hit times back from the gpu (not track information), but I am waiting to find out if pycuda GPUArrays can be used with vector types.
2011-06-24speedup mesh intersection by skipping directly to the child node of nodes ↵Anthony LaTorre
with only one child.
2011-06-23move photon initialization to the gpu. it's unclear if this is a speed ↵Anthony LaTorre
improvement.
2011-06-23Replace calculation of likelihood variance from uncertainties becauseStan Seibert
it is too slow. Now we do it directly.