01/14/2005 -- Robert Edwards Version 1.17.1. Some code cleanups/namespaces. Logging in HMC. Merged in Al Hart's changes. 01/13/2005 -- Balint Joo Version 1.17.0. Major reorg of molecdyn dir. Files split and rearranged. Basic HMC structure in place - still some polishing. Gauge acts like plaq,rect,pg seem to all work. 01/12/2005 -- Robert Edwards Version 1.16.1. Added new gauge actions (wrappers over plaq,rect,pg). 01/12/2005 -- Robert Edwards Version 1.16.0. Rearranged actions/gauge directories. 01/12/2005 -- Robert Edwards Version 1.15.5. More hardening of HMC. Some bug fixes in gaugeacts. 01/11/2005 -- Robert Edwards Version 1.15.4. Added plaq,rect,pg gaugeacts. Made gauge monomial class generic. 01/11/2005 -- Robert Edwards Version 1.15.3. More hardeninng of HMC. Chrono prediction added. Added ParWilson (Twisted Mass Wilson) support within HMC. 01/10/2005 -- Robert Edwards Version 1.15.2. Changed HMC monomial routines to more generic method. 01/10/2005 -- Robert Edwards Version 1.15.1. Some more HMC suport. Small code cleanups to make code pass -Wall. 01/07/2005 -- Robert Edwards Version 1.15.0. Added SSE qpropT for DWF. 01/06/2005 -- Robert Edwards Version 1.14.3. HMC support appears fixed. 01/04/2005 -- Robert Edwards Version 1.14.2. Added linOpPV back into FermAct5D hierachy. Rearranged and extended Monomial support which now has a 4D and 5D branch. Abstracted derivative/refresh codes. Added new monomials. 01/04/2005 -- Robert Edwards Version 1.14.1. Small changes in derivative support. 01/01/2005 -- Robert Edwards Version 1.14.0. Another major overhaul of FermionAction classes. The concept of derivative is pushed up higher in the tree. All fermacts now have some default derivative support (possibly nothing more than Not Implemented message). Qprop and QpropT now produced via factory functions ala LinearOperators. Now have a SystemSolver class - can be used for all solvers. 01/01/2005 -- Robert Edwards Version 1.13.1. HMC now runs, but still needs work. 12/29/2004 -- Robert Edwards Version 1.13.0. Rearranged top-level FermionAction support. Consolidated FermFactories. 12/29/2004 -- Robert Edwards Version 1.12.1. HMC changes and support for gauge and ferm Monomials. 12/23/2004 -- Robert Edwards Version 1.12.0. Now have a FermBC factory/foundries. Removed explicit FermBC args from FermAct factories and now the creation of the FermBC is done within the construction of the FermAct. Similarly, HMC will create FermActs as needed. The old "boundary" within propagator.cc input is now shoved into the FermionAction xml. 12/23/2004 -- Robert Edwards Version 1.11.3. More HMC changes. 12/22/2004 -- Robert Edwards Version 1.11.2. New HMC support. First versions of Monomials. 12/15/2004 -- Robert Edwards Version 1.11.1. Fixed chroma_config (for libs). Moved other routines to chroma namespace. Added more to EXTRA_DIST . 12/12/2004 -- Robert Edwards Version 1.11.0. Major overhaul of fermact and linearop class structure. Removed dsdu stuff - now in linops. Introduced levels of fermacts (base or not) that have derivs. All low level fermacts/linops have an additional template param for type of conjugate momenta in derivative. Made all fermacts and linops within chroma namespace. 12/09/2004 -- Robert Edwards Version 1.10.2. Changed prec. DWF-base to have linOp4D only use prec. 5D operators. 12/09/2004 -- Robert Edwards Version 1.10.1. Small fixes/tweaks 12/09/2004 -- Robert Edwards Version 1.10.0. Overhaul of DWF-like class structure. 12/06/2004 -- Robert Edwards Version 1.9.2. Changes to staggered stuff. Start of xmldiff checks. 11/22/2004 -- Robert Edwards Version 1.9.1. Removed last of all Namelist-isms. 11/22/2004 -- Robert Edwards Version 1.9.0. Big merge of Wilson and Staggered builds - now all the same. Cleaned up automake files so make distcheck should work. 11/20/2004 -- Robert Edwards Version 1.8.2. More changes within Zolo Ferm support. Changed staggered files to use LatticeStaggeredFermion 10/21/2004 -- Robert Edwards Version 1.8.1. More updates. First start of Zolo in NEF. 10/18/2004 -- Robert Edwards Version 1.8.0. First version. Changed to support QMP-2. New fermion action initialization. New support for variable initialization. 09/28/2004 -- Balint -- ZolotarevStateInfo has been renamed to OverlapStateInfo ( and the previous empty OverlapStateInfo base class has been removed) -- I have added the state_info field to Propagator_Input_t as a standard string. I had it in ChromaProp_t first but I believe it should not be part of the tagset but rather live at the same level as Cfg_t in the top level applications. Look in propagator.cc to see how I manage it. Essentially I do this (propagator.cc line 84): // Read any auxiliary state information // if it exists if( inputtop.count("StateInfo") == 1 ) { XMLReader xml_state_info(inputtop, "StateInfo"); std::ostringstream os; xml_state_info.print(os); input.stateInfo = os.str(); } else { // Write an empty document if not // found XMLBufferWriter s_i_xml; push(s_i_xml, "StateInfo"); pop(s_i_xml); input.stateInfo = s_i_xml.str(); } I have added dummy createState() functions to the various fermacts that read from an XML containing StateInfo. Apart from the overlap, these createState()-s just ignore the XML, but this virtual func could be a good hook for you if you add StateInfo to some ZolotarevCoeff-ed DWF fermacts. In fact, if you just write these, they'll be picked up appropriately by propagator... A sample usage of state info is in chroma/tests/propagator/propagator_zolo4d_v6.xml.in -- As agreed, I have removed backward compatibility with SZIN - type vectors in createOverlapState() -- now just uses my evecs. -- I have written factory functions for creating OverlapConnectState-s in overlap_state.h overlap_state.cc. I originally wrote these as templated funcs, but then I couldn't shove them into the .cc file - they'd needed to have stayed in the .h file where the prototypes are defined. So I did similar things to the Inverter functions. I wrote out the "specialisations" in the .h file and wrapped a templated version in the .cc. Your fermact's createState()-s can just dive on these see ovlap_partfrac_4d_fermact_w.[h,cc]. The issue of 4D and 5D BC's is hacked around as discussed: i) The aux ferm act gets trivial BC-s. This doesn't matter as we never use them. We always use the BC-s of the parent. ii) the createOverlapState() function is passed a linOp which the caller FermAct constructs. AuxMass is therefore no longer passed iii) the createOverlapState() function creates a SimpleConnectState internally to call the passed linOp with, after applying the modifyU() function of the passed FermBC -- Zolotarev4DFermAct and Zolotarev5DFermActArray have been renamed: as OverlapPartFrac4DFermAct and UnprecOverlapContFrac5DFermActArray and put in ovlap_partfrac4d_fermact_w.[h,cc] and unprec_ovlap_contfrac4d_fermact_array_w.[h,cc] the zolotarev5d_linop_array_w.[h,cc] is still there but will also be renamed real soon now. -- I have removed the double mappings for backward compatibility ZOLOTAREV_4D and ZOLOTAREV_5D are dead. Now you need to specify something like: OVERLAP_PARTIAL_FRACTION_4D true ZOLOTAREV 0.04 17 1000 1.0e-7 20 UNPRECONDITIONED_WILSON -1.4 Other new FermActs: "UNPRECONDITIONED_OVERLAP_CONTINUED_FRACTION_5D" and soon "OVERLAP_CONTINUED_FRACTION_5D" (which will be preconditioned) ApproximationType can be "ZOLOTAREV" or "TANH" for now. Robert feel free to add your own here if you want. io/enum_io/enum_coeffs_io.[h,cc] io/enum_io/enum_fermacttype_io.[h,cc] I have removed therefore the old XML input files from the repository and added in the new ones. -- Approximation type can now also be TANH with the following caveats: i) rescaling: I am still not clear on this. I may not need to do this at all or I may need to do it the same way as done in the ZOLO case. I'll ask Tony. ii) projection: I saw in your paper that in the Borici (TANH) case, the EigValFunc is not signum but in fact the polar approximation: \epsilon_{Ls/2} -- Also note from the above XML, that as agreed, I pushed the IsChiral to be a user supplied parameter. So that if we have a bad approximation for Zolotarev we can set it to false. Likewise if we have a supremely high order tanh approximation with projection so that we are effectively chiral then you can set it to true. -- fermact_paramio.h fermact_paramio.cc zolotarev4d_fermact_paramio.h zolotarev4d_fermact_paramio.cc are GONE (removed from CVS) zolotarev5d_fermact_paramio.[h,cc] are still around but will be gone real soon now. 08/30/2004 -- Robert Edwards Version 1.7.4. Really, these are the last changes before 1.8 08/30/2004 -- Robert Edwards Version 1.7.3. Last changes before 1.8 08/20/2004 -- Robert Edwards Version 1.7.2. Changed wall-FF codes to allow wall-source. 08/20/2004 -- Robert Edwards Version 1.7.1. Some more hmc support. 08/01/2004 -- Robert Edwards Version 1.7.0. Added SSE_DWF_CG support. 07/27/2004 -- Robert Edwards Version 1.6.2. Changed START/END_CODE() to not have first arg. 07/27/2004 -- Robert Edwards Version 1.6.1. Changed sink_smear2_w.{h,cc} to fermion indep. sink_smear2.{h,cc}. Other small lib/Makefile.am fixes. 07/26/2004 -- Robert Edwards Version 1.6.0. New HMC support. New profiling support. Changed mem. layout to remove PDWVector layer - only matters for SSE routines. Removed completely all uses, decls, files with LatticeDWFermion. 07/13/2004 -- Robert Edwards Version 1.5.20. Final version before minor release of QDP breaks old usage of LatticeDWFermion. 06/08/2004 -- Robert Edwards Version 1.5.19. Modifed Wallformfac mainprog to write binary. 06/08/2004 -- Robert Edwards Version 1.5.18. Wallformfac codes debugged to some extent. Added new delta operators in baryons_w.cc . Time for major tests. 05/28/2004 -- Robert Edwards Version 1.5.17. Changed Coulomb gfixing to use gauge transf matrices. Put relaxed solvers in for overlap and into things like quarkProp4 05/27/2004 -- Robert Edwards Version 1.5.16. Fixed SciDAC gauge IO to always read/write in single prec. Fixed initialization in multi-mass quark prop. 05/25/2004 -- Robert Edwards Version 1.5.15. Fixed KYU qprop readers to correct basis. Completed insertion of GMRES and relaxed codes. Also inner "preconditioned" versions. 05/19/2004 -- Robert Edwards Version 1.5.14. Relaxed solvers for overlap appear to work. Now have BiCG codes, SUMR, CG, etc. and multi-mass variants. Fixed KYU qprop reader. 05/13/2004 -- Robert Edwards Version 1.5.13. QQQ program now can output in Dirac or Degrand-Rossi basis. Made basis rotation more public. 05/13/2004 -- Balint Joo Version 1.5.12. Working multi-mass SUMR code. 05/12/2004 -- Robert Edwards Version 1.5.11. Tidying in the sequential source/prop reader/writers. Working SUMR codes. Overlap under development to use new tricks. 05/04/2004 -- Balint Joo Version 1.5.10. Overlap double pass appears okay. 05/02/2004 -- Robert Edwards Version 1.5.9. Qproptransf codes in place. Now have completed conversion to new seqsource/propagator qprop format. 04/29/2004 -- Robert Edwards Version 1.5.8. Wall-formfactor code appears to work and agree with bar3ptfn code with a wall sink. 04/29/2004 -- Balint Joo Version 1.5.7. Changed auto-isms to allow correct installation. Fixed chroma-config to be useful. Now have a chroma_config.h and internal.h. 04/27/2004 -- Robert Edwards Version 1.5.6. Last changes (mostly overlap) before splitup of main codes. 04/23/2004 -- Robert Edwards Version 1.5.5. More support for overlap. 04/22/2004 -- Robert Edwards Version 1.5.4. BUG FIX in baryon_w.cc . The proton_{4,5,6} were converted incorrectly from szin. Cleanups in gauge initialization. Overlap support now in propagator codes. 04/21/2004 -- Robert Edwards Version 1.5.3. New version of propagator input. New wall-sink formfactor codes. New multi-prop. support. 04/05/2004 -- Robert Edwards Version 1.5.2. Start of support for SZINQIO. 04/01/2004 -- Robert Edwards Version 1.5.1. Added non-relativistic support to seqprop. 02/22/2004 -- Robert Edwards Version 1.5.0. Major change in propagator model in main programs. ONLY support SciDAC format of propagators. Now, the "Param" group on input is the header of some propagator. There are XML and binary parts of propagators (SciDAC format). The XML part is used in subsequent calculations, thus removing potentially erroneous use of input params in calcs. All test files changed to match 02/22/2004 -- Robert Edwards Version 1.4.4. Some new programs added. Fixed make_source/propagator/seqprop/spectrum chain of tests to be consistent and give reasonable output. Cross-checked against new (un-committed) XML driven input/output model. 01/27/2004 -- Robert Edwards Version 1.4.3. Overhauled SSE Wilson dslash support. New index tables. 01/26/2004 -- Robert Edwards Version 1.4.2. More eigenvalue stuff. Tagging pre-release of the new SSE Wilson dslash support. 01/07/2004 -- Robert Edwards Version 1.4.1. Functioning Zolotarev code by Balint Joo. Also, added WILSON and STAGGERED build control. 01/01/2004 -- Robert Edwards Version 1.4.0. Removed all proxies. Switched to only use Handles (proxies were just glorified handles). Changed fermact factory functions to require a Handle instead of a pointer to a connect state. Added Fermion and Gauge BC support. Now a new virtual getFermBC in FermAct. Now, the semantics is the FermAct is responsible for applying the Fermionic BC. All the fermacts changed to pass a FermBC which is then applied to the U fields in createState. This is supplied as a default in createState. First tentative code for pure gauge heatbath and dyn. ferm. HMC. 12/31/2003 -- Robert Edwards Version 1.3.2. More tweaks in fermacts. Added first versions of heatbath and HMC (not working yet). This is a pre-release before major changes to come. The next version changes substantially the fermacts - now gauge and fermion BC are included in the proper way. 12/06/2003 -- Robert Edwards Version 1.3.1. Added various gauge fixing routines. 12/02/2003 -- Robert Edwards Version 1.3.0. Another overhaul of FermionAction support. Now create and pass around gauge connection state. 12/01/2003 -- Robert Edwards Version 1.2.1. Minor tweaks. Pre-release for 1.3.0 . 11/23/2003 -- Robert Edwards Version 1.2.0. Overhauled FermionAction and LinearOperator. Added new even-odd preconditioned support. 11/20/2003 -- Robert Edwards Version 1.1.4. Switched LinearOperator and FermionAction interfaces to pass what was return type as instead argument to operator() & apply (linop) and dsdu (fermact). 11/20/2003 -- Robert Edwards Version 1.1.3. Small tweaks. 11/16/2003 -- Robert Edwards Version 1.1.2. Added extended-overlap action and linop. 11/14/2003 -- Robert Edwards Version 1.1.1. Rearranged fermact files and made more base classes. Merged separate dsdu and qprop files into corresponding fermact files. 11/14/2003 -- Robert Edwards Version 1.1.0. Added array versions of fermacts. Now have functioning unprecondition DWF operator. 10/09/2003 -- Robert Edwards Version 1.0.1. Changed all cout/cerr/QDP_info to use QDPIO::cout/cerr. 10/07/2003 -- Robert Edwards Version 1.0.0. First major release. Supports sse extensions. Several bits in production. More to come.