DONE/TODO/FUTURE list for next release of McStas (1.6) Compiled by PW/EF from user wishes and different notes. Tasks have been divided into 4 categories: DONE - reqd. task, done or very simple TODO - reqd. task, requires substantial work FUTURE - needed, wanted, but postponed for later release USER - work for McStas user base more than developers + already implemented - not yet implemented ? still to decide ******************************************* DONE: Kernel: OK Runtime: + Ncount is 0/ncount when starting mcsiminfo_init() Components: + Check Origin/Release line/add example: release/geography + change all monitors Nnum to double + Finally-> Save... + Prepare all for polarisation - done. + ESS moderators - done. + Monitor_nD, replace p by other phys. quantity, easy task. + Renaming of components (optics/samples) (e.g. Guide_*) + Monochromator, reflectivity curve from file. renormalisation by r0, simple. Instruments: - Intercomparison instruments H8, IRIS, RITA-II, IN12, TAS1, IN14,... + selftest ok Tools: (GUI, plotting, running etc.) - Automated optimization -> Optimisation (LM?) - great complexity... Manual example? Documentation: - "Switch/Skip" components (Component group ABSORB GROUP COMPONENT - can be done, example in manual?) - "Share" components (done, sharing "shareable" parts - lib style) - Logging event support (Can be done, Monitor_nd - example in manual?) - "Split" neutrons (see switch/skip + extend feature - example in manual) - Framework for table input ?!? (If about parameter input, should be doable, through defines) - Compile runtime+shared functions - through example in manual. Community related: ******************************************* TODO: Kernel: + %include keyword for "inclusion" of components in components... (To think about), done. :) -> component_shares/My_function_name_include + if no .c/.h, embed .h, and then .c if runtime, else display message for .o link - JUMP : goto comp label with current coords. May restore neutron before, depending on specific requirements. In cogen, define labels 'StartComp:' for all comp instances. group will use that to go to next labels: absorbAll, absorbComp EndComp is easier (in the same component, thus can go there to skip, without knowing the name of the next one). + enable char parameters : limited to 1024 char buffer. MC_CHAR_BUF_SIZE ? + SAVE section for intermediate savings Runtime: + Gravity (functions defined, only used in gravity guide - merge propagation routines, easy task) g*,mcrotaComp Coords G=coords_set(0,-9.8,0); Coords localG=rot_apply(ROT_A_CURRENT_COMP, coords_set(0,-9.8,0)); + save monitor data in different formats: McStas ascii, NeXus XML, HTML, Scilab binary float, binary double for XML, recommand http://gxmlviewer.sourceforge.net/ - Retrieve old monitor data, read from file by Virtual_input -> mcstas_r. not so easy -> NeXus -> runtime utility to identify which file is the right one ! read header for all, look for comp instance name. Check file extension. Find field in header + rand_target_rect, modification according to formula. ? move extend_list to external lib ? used in Powder_filter.comp, Filter_powder.comp, Single_crystal.comp, the Manual. + 3d data files saved linearly (2d), and rearranging as 3d after. + mcsave=simifo_init(NULL)/save/siminfo_close() (to get only latest save with right sim ratio) + binary export: ok (Virtual_input/output use that). + scilab export: rescale x,y,z to have cubic 2d plots + read_table-lib can read text files, binary files, starting at given offset, for a given number of lines + mcstas-r.c: handle binary file export ok, also for 'hidden/partial' files (not listed in .sim, as e.g. virtual sources = big files) Components: + Monochromator_curved: add 'reflect/transmit' param info in header. Add verbosity level and transmission efficiency if not scattered. Add spin ? + Monochromator_2foc: reflectivity ok + Monitor_nD: enable auto all, or auto for specified variables only. add FLAG_AUTO | COORD_TYPE + Monitor_nD plot banana and quadrant monitors (instead of whole circles) Intermediate saving trigger all saves + cylinder_intersect: return 0 no intersect, 1 on cylinder, 2/4/8/16 for in top/in bottom/out top/out bottom + Virtual_output - ok, macro for calling Monitor_nD? - Based on Vitess_output/Virtual_input + Virtual_input: use Table_Read, corrected repeat count/set_ncount ok. + Sort components in categories, official, contrib, obsolete + verbose mode for complex components + Virtual_input crashes when filename does not exist. Pb with repeat nb. ok + Guide_gravity with general gravitation orientation ? set it at first neutron in ntrace + New Filter_gen, that may use any text data file + Virtual_input/output may read/write huge files, by fractions. + V_sample: may target to any component (compute target_x,y,z) given rel index + V_sample: may also be a box - Res_monitor: as a cylinder/sphere monitor, stores monitor_nd cell index + Progress_bar: flag for intermediate savings - Check fluxes / absolute fluxes - provide experimental data + instrument definition - Powder component take input, written, should be tested. 2 lines, n lines. - Sample for SANS - existing components (single xtal ex.), other parms, powder to be checked. - Bender, to be tested check for absolute fluxes, as compared to a number of linear guides. - Filter_powder.comp, Single_crystal.comp : use Table_Read, extend_list - Source_Optimizer to be tested - cvs revision no, etc. for both McStas kernel / lib, automated using cvs?. Origin indicates research institution, McVersion required McStas Version Instruments: - Component test modules - Moved to lib/examples/H8,... including instrument files + data + test results from "stable version" incl. test-script. Tools: (GUI, plotting, running etc.) - mcplot must rescale to 100 % simulation in case of visualisation of interrupted simulation. Only for intensity monitors. + mcplot can monitor single data file (not sim) + mcplot and mcdisplay can output gif + mcplot and mcdisplay can output ps/psc/gif and exit (non interactive) + mcplot does not work for scans: fixed. ok + mcplot works with Matlab, PGPLOT and Scilab plotter + mcdisplay works with Matlab, PGPLOT and Scilab plotter + mcgui: fixed a few minor problems + install now ok with sub dirs + mcstas2vitess ok for single components. Must use settings params only. - Improve GUI - scilab. - Status monitor support (Tool to be written - script) - access pid, daemon. - html / png / page generation. (perhaps scilab based?) - mcplot? - mcdisplay date checking for recompilation, through mcrun -n0 - export in several formats, ps, gif (scilab), png (Imagemagick when available) + mcdisplay show help info when no arguments (l. 517) - mcdoc: changed to show instruments also. + mcresplot works ok, even without 3D OpenGL/Mesa install Documentation: - FAQ list in manual - Examples for group, share etc. - Component manual info should be included, user auth. for contrib. - valid latex2e code. (latex2html, pdftex etc.) - doc directory. Community related: - Developers list mcstas-devel@risoe.dk - License problems? Inclusion of GPL'ed mersene twister etc, png. etc. ******************************************* FUTURE: Kernel: - Option to trace background events - no, perhaps absorbed neutrons instead? - Loop/Additive groups - very complex, in principle can be done within each component -> see JUMP - MPI - pvm? - Nexus - function calls (partially written) Runtime: - Functions for Nexus (to be written) - additional data formats NeXus, mcdirname gives internal NeXus path (including entry name), file gives NeXus file name Vitess, (data is ascii, buffers is binary->Vitess_output) FITS http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html http://archive.eso.org/saft/ (qfits) enable saving in code after checking existence of libraries or flags Components: - Inelastic samples, inclusion of already written components for this? Test reqd. - Sample for amorphous materials, (inelastic?) structure from asympt. apx. from powder sample. Instruments: Tools: (GUI, plotting, running etc.) - Analyzer bank generator (RITA2 type setup), script - mcdisplay 3D? ongoing... - BatchMaker? Ask author to contibute - improve Matlab and IDL export (binary, plot...) Documentation: Community related: - More user communication on ongoing projects. (Either a web page or a monthly reminder to mailing list) - Intercomparison info on web page - Add new components (RISŲ, Th. Hansen,...) (- Instrument archive facility on web page) - Contact NIMB for publications - ("recommended journal" on web) - Agitate neutron software -> ESS - SCANS extenstion - v 2.0 release ******************************************* USER: Components: - Monochromator w/ parasitic Bragg channel - not too complicated. - Andrew Garret components. Instruments: Tools: (GUI, plotting, running etc.) - BatchMaker? Ask author to contibute Documentation: Community related: