Age | Commit message (Collapse) | Author |
|
try to use Image module to save screenshot if pygame screenshot doesn't work.
|
|
|
|
interpolating on the wrong side of the interval between two points.
|
|
|
|
|
|
|
|
function in last commit.
|
|
function.
|
|
rotate() function which is faster and can handle different angles for each vector.
|
|
by pressing page up/page down again
|
|
|
|
the actual pixel locations
|
|
liquid argon.
|
|
|
|
|
|
that is kind of confusion. jet_r starts from red and goes to blue.
|
|
calculated to give about 10,000 initial photon vertices in the event.
This is required to deal with events with very large numbers of
photons, like scintillation events.
|
|
a random subset of photons based on the reduction_factor given.
|
|
chroma.event.Photons objects to compute PDF values rather than a
generator of Event objects.
|
|
This is an optimization that is helpful for smaller detectors, even if
giant water Cherenkov detectors cannot take advantage of it.
Modified Mapped() helper function to pass through GPU arrays, which
makes it much easier to flip between arrays on the CPU and the GPU.
|
|
|
|
|
|
material_data list to prevent them from being garbage collected.
|
|
|
|
reflection function.
This allows the photon to reemit on either side of the surface and
also removes a spurious diffuse reflection bit in the history.
|
|
|
|
|
|
away the split storage.
Also fixes a bug discovered by Mike Jewell that crashed BVH creation after
the last commit.
|
|
between GPU and CPU. This allows much more complex geometries to
be run on CUDA devices with less memory.
The GPUGeometry object now takes a min_free_gpu_mem parameter giving
the minimum number of bytes that can be free on the GPU after the BVH
is loaded. By default, this number is 300 MB. Cards with sufficient
memory will have the entire BVH on card, but those without enough
memory will have the BVH split such that the top of the hierarchy (the
most frequently traversed) is on the GPU.
|
|
'weld' a solid onto another one at identical shared triangles. optionally apply a ``Surface`` or color to the shared surface.
this isn't a boolean solid operation -- the triangles must be identical in the two meshes.
|
|
|
|
update remaining unit tests to build BVHs with
``loader.create_geometry_from_obj`` instead of the (removed) ``build``
method.
|
|
|
|
The ``Material`` struct now includes two new arrays: ``reemission_prob`` and ``reemission_cdf``. The former is sampled only when a photon is absorbed, and should be normalized accordingly. The latter defines the distribution from which the reemitted photon wavelength is drawn.
This process changes the photon wavelength in place, and is not capable of producing multiple secondaries. It also does not enforce energy conservation; the reemission spectrum is not itself wavelength-dependent.
|
|
remove the ``SURFACE_SPECULAR`` and ``SURFACE_DIFFUSE`` models, since their functionality is available using the more-general ``SURFACE_DEFAULT``. also allow the user to specify the reflection type (specular/diffuse) for the complex and wls models. change wls so the normalization of properties is more consistent with the default.
|
|
|
|
All surface models including ``SURFACE_COMPLEX`` and ``SURFACE_WLS`` are now working. Note that the WLS won't work right in hybrid rendering mode since that mode relies on matching up incoming and outgoing photon wavelengths in a lookup table.
|
|
this fixes hybrid rendering mode
|
|
|
|
reduce models to the following:
SURFACE_DEFAULT, // specular + diffuse + absorption + detection
SURFACE_SPECULAR, // perfect specular reflector
SURFACE_DIFFUSE, // perfect diffuse reflector
SURFACE_COMPLEX, // use complex index of refraction
SURFACE_WLS // wavelength-shifting reemission
where SURFACE_COMPLEX uses the complex index of refraction (`eta' and `k') to compute reflection, absorption, and transmission. this model comes from the sno+ rat pmt optical model.
|
|
surfaces now have an associated model which defines how photons are propagated. currently, these include specular, diffuse, mirror, photocathode (not implemented), and tpb. the default is the old behavior, where surfaces do some weighted combination of detection, absorption, and specular and diffuse reflection.
`struct Surface` contains as members the superset of all model parameters; not all are used by all models. documentation (forthcoming) will make clear what each model looks at.
|
|
isotropically distributed directions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
along with Chroma on an Ubuntu 11.04 system.
|
|
|