commit e96e9b221c882f59d5680be13d331022bc784a09 Author: Frederik Heber Date: Fri May 18 17:27:25 2012 +0200 Adapted all Makefile.ams to splitting. commit 508e98b13b9eb17f0a4db04c149136f4f94e5dee Author: Frederik Heber Date: Fri May 18 17:26:50 2012 +0200 Moved some molecuilder specific files back to Fragmentation/Automation. commit b8211878e73baa75a30a8133f28b15f06950b674 Author: Frederik Heber Date: Fri May 18 17:07:01 2012 +0200 Adapted most files (which have been copied from sub-package LinearAlgebra). commit 751f4b8f15ee6b4cbba63d3b385810e088f8cb30 Author: Frederik Heber Date: Fri May 18 16:37:17 2012 +0200 Moved all Fragmentation/Automation into new subpackage JobMarket. commit baf1b40315890f3e8240b27d2e57814153bdaea6 Author: Frederik Heber Date: Fri May 18 15:09:36 2012 +0200 tempcommit: Added initial Action on FragmentationAutomation. commit c4e2a6a72aa25914e001db27585e486c63bc1570 Author: Frederik Heber Date: Sun May 13 21:03:53 2012 +0200 Regression test FragmentationAutomation enroll-in-pool now also adds a job. - this is have it both ways: First the job, then the worker as in adding-job. And also, first the worker, then the job as now in enroll-in-pool. - this is to make sure that the observer mechanism is working on both ways correctly. commit 8419019e75b5cdf4bf2681287595dbaf1a53de21 Author: Frederik Heber Date: Sun May 13 20:56:51 2012 +0200 DOCU: Added extensive documentation on the client/server/controller concept of the Fragmentation Automation framework. commit 21546ba4a1ce53746aa93a2459bb9dc4151f5381 Author: Frederik Heber Date: Sun May 13 19:53:34 2012 +0200 PoolWorker now has an OperationQueue and ServerAddress. - OperationQueue works the same way as for FragmentScheduler. Operations are simply handed over to it with callback function in place from cstor. - ServerAddress stores server's address to hand to OperationQueue on pushing the operation. commit 8d60281b0e2cb7acefdfa19abbd4e0f2273651af Author: Frederik Heber Date: Sun May 13 19:53:05 2012 +0200 Renamed PoolWorker::address -> ::MyAddress to differentiate from ServerAddress to come. commit 8a3145cd3d2897310c065bf5a8e3e6548fd2a2ab Author: Frederik Heber Date: Mon May 14 15:57:39 2012 +0200 PoolWorker now shuts down when enrollment is not successful. - new bound function initiateme contains call to initiateSocket() and is called when EnrollInPoolOperation succeeds. commit b6428a47357b18b99dfb35ab45366c47c4c4d1cf Author: Frederik Heber Date: Fri May 11 22:00:28 2012 +0200 RemoveFromPoolOperation is now async. - changed PoolWorker such that we close down socket and listener via success callback handler of the operartion. - FragmentScheduler now sends true/false as status of removal. commit cf50a864688a2aaf3519e98e8759596bba12f4e5 Author: Frederik Heber Date: Fri May 11 21:42:43 2012 +0200 Added ExitflagContainer that FragmentController and PoolWorker use. - all Operations have been stripped of their internal Exitflag. - PoolWorker and FragmentController uses callback mechanism to let the AsyncOperation set their Exitflag in case of failure. commit d0e1ef9a6e268a25f29f72dc7be65aa0fb23e8c4 Author: Frederik Heber Date: Fri May 11 20:23:22 2012 +0200 AsyncOperation and all derived classes changed their cstor and operator() signature for success/failure callback handlers. - This allows starting certain functions depending on whether an asynchronous operation succeeded or not. - FragmentController and PoolWorker are adapted to new AsyncOperation's cstor and operator() signatures. commit b47515a84bb390d8602659bcbeef7be7b89550c8 Author: Frederik Heber Date: Fri May 11 21:39:08 2012 +0200 FragmentScheduler sends true or false instead of specific enumeration as acknowledge of enrollment. - adapted EnrollInPoolOperation accordingly. commit a742fbe4bf1d518405c309610e6b7199cb574c73 Author: Frederik Heber Date: Fri May 4 15:26:34 2012 +0200 Hostname argument to poolworker is now optional. - we use gethostname() to obtain the hostname if no argument given. commit f3d74dc0b997435a2402215efce4f99bca661345 Author: Frederik Heber Date: Thu May 3 14:46:59 2012 +0200 Controller now also uses boost::program_options to parse command line options. - also we now cleanly check whether each command has its required arguments before making any connections to the server. Hence, nothing can be lost. - TESTFIX: Changed regression tests due to changed controller calling signature. - TESTFIX: regression test Fragmenation/Automation mpqc-jobs uses removeall instead of giving kill. commit 167fe1f56ca8c04b74bce08930c7a56bceed025b Author: Frederik Heber Date: Thu May 3 13:14:23 2012 +0200 Server now also intercepts sigint and shuts down gracefully. - new FragmentScheduler::shutdown() function is bound and given as signal handler. - on signal we first remove all workers and only shutdown and close sockets when there are no workers. - note that we do not release the signalhandler after first received signal but after a given number as two ctrl-c are required to shut down server having poolworkers. commit 5e2194627d0cac07245760514e33e070c52e4e90 Author: Frederik Heber Date: Wed Apr 25 14:22:22 2012 +0200 Server now gives information about number of total and idling workers when new one is added. - WorkerPool has new convenience functions for the size of each internal queue. commit 5e8029f96b675f41f71261551f4e9af96b6f1026 Author: Frederik Heber Date: Wed Apr 25 13:24:11 2012 +0200 Server now also parses worker and controller port via boost::program_options. - TESTFIX: Same again, adapted server calls due to changed command option signature in regression tests Fragmentation/Automation. commit 5a506b81754634f69e2c682645a79a1594e07f3b Author: Frederik Heber Date: Wed Apr 25 13:22:35 2012 +0200 We now set option reuse_address to be more gentle only used ports. commit ea2dd0886c745ecd04ec40d321102610c432bb20 Author: Frederik Heber Date: Wed Apr 25 12:27:55 2012 +0200 PoolWorker now accepts command line options to for signals and verbosity. - all of poolworkers command line arguments are now parsed via boost::program_options. - As a sideeffect multiple signals may now be specified to catch on the command line. - TESTFIX: Usage of poolworker has changed, hence adapted regression tests. commit c450820c3fdfd5ec4f1ad14dc8e7e0723afec9fa Author: Frederik Heber Date: Wed Apr 25 12:04:21 2012 +0200 FIX: All checks on command line arguments are now done in phase one, exit on fail. - otherwise we lost e.g. results when receivempqc had received them but noticed afterwards that the required path is missing. commit 416795632ceab4c43a021daa65c7ece496af0a8c Author: Frederik Heber Date: Tue Apr 24 18:53:31 2012 +0200 OperationQueue now has a max_connections and allows only this number of running operations. - OperationQueue::launchNextOp() is called by update() and push_back(). - new AddressMap takes endpoint addresses and is used to know which operations still have to be executed. commit e61629940d3ee21968da3200d5b2b7258dd884e7 Author: Frederik Heber Date: Tue Apr 24 18:26:01 2012 +0200 FIX: Listener (and PoolWorker) now check whether address to listen on is in use. - we use acceptor construction as given in boost::asio::basic_socket_acceptor to listen on the desired port. Bind gives error code when error occurs. commit 3737589f2e01cba8b2152270adbc3d9f86e2f9e5 Author: Frederik Heber Date: Thu May 3 16:20:25 2012 +0200 Rewrote FragmentScheduler::removeAllWorker() to only give shutdown signal to all idle workers. commit 0b80c84615eff875684021ca24c1e41152daf06a Author: Frederik Heber Date: Thu May 3 16:20:05 2012 +0200 FragmentScheduler::shutdown() now returns bool and does not remove workers anymore. commit 963e4fb4f0893c21b66c69615fa6a5b552dd8279 Author: Frederik Heber Date: Thu May 3 16:18:24 2012 +0200 Added new RemoveAllWorkerOperation and removeall command to FragmentController. - FragmentScheduler::ControllerListener_t has second bound function to removeAllWorker() from FragmentScheduler instance. - this is preparatory to split shutdown into first removeal and then closing of sockets. commit 9135a1608c0d1333992b135d4a9767c1d5df59e3 Author: Frederik Heber Date: Thu May 3 15:30:09 2012 +0200 Rewrote FragmentScheduler::shutdown to make sure idle_queue is truely const. - WorkerPool has new function to return idle_queue addresses as Vector. - We first get all addresses, then shutdown each and also we iterate over this as long as OperationQueue has Ops and idle_queue has idlers. commit 2691d25593c186591318d9b46a6be06ed4881047 Author: Frederik Heber Date: Tue Apr 24 17:34:20 2012 +0200 ShutdownWorkerOperation is now an asynchronous operation. - FragmentScheduler places shutdown op into queue as well and waits for empty queue in removeAllWorkers(). - OperationQueue has convenience function empty(). commit 035ac66c763fbc9cdea256fa26d3185d91e32f62 Author: Frederik Heber Date: Tue Apr 24 16:58:50 2012 +0200 FragmentScheduler is relieved of observering Operations, is done by OperationQueue. - i.e. OperationQueue is now an Observer and uses push_back() and remove() to sign on and off from the given operations. - added unit test function to check this behavior. commit e49da44bc6ef516a20db5a746ccf4aafdc9a4dd1 Author: Frederik Heber Date: Tue Apr 24 16:56:21 2012 +0200 FIX: FragmentScheduler now has an OperationQueue that monitors its async.ops. - this fixes the issues with multiple jobs being handed out. commit a63dbd11fbc3f43176c999f1e7a3bace140ecfb4 Author: Frederik Heber Date: Tue Apr 24 16:36:36 2012 +0200 Implemented OperationQueue that takes care of AsyncOperations. - this is preparatory to fixing FragmentScheduler: When more than one job is placed in the JobQueue at the same time and multiple workers are idling, then also multiple SendJobToWorkerOperations are required. So far there is only a single instance, hence it is overwritten and only the last worker gets its correct job. - also added unit test on functionality of OperationQueue. commit b9054c6b9ae471826a9e49ca22f57c025cf530da Author: Frederik Heber Date: Tue Apr 24 16:35:21 2012 +0200 AsyncOperation is now an Observable. - it gives update() when the operation has been completed. - this is preparatory to placing AsyncOperation inside a queue that automatically takes care of their removal. commit 2b7afae9f53f61e160869bcbfa3299df4422d408 Author: Frederik Heber Date: Tue Apr 24 16:34:35 2012 +0200 SendJobToWorkerOperation can be given job in its cstor. commit 5369c6673a1219227b5581ad70b285e7f774c364 Author: Frederik Heber Date: Tue Apr 24 12:38:54 2012 +0200 FIX: Removed channel WorkerRemoved in WorkerPool as it may cause cyclic updates in FragmentScheduler. - If jobs are already present in the queue and an idle worker arrices, then marking a worker busy will cause an update inside the callback that is used to send the job to the new idle worker. This will trigger the same notification that is not yet removed to be called in notifyAll(). This causes a cycle in the updates. commit 851b676a9a05fe09b9f44b99388a3d60ba253f5d Author: Frederik Heber Date: Tue Apr 24 12:36:30 2012 +0200 FIX: Removed channel JobRemoved from FragmentQueue as it may cause cyclic updates in FragmentScheduler. - An update is triggered, when a job is popped from the queue. If a new job has just been pushed and a worker is free to pick it up, the callback function is used to do this. If we trigger an update by popping a job, even if it's now a JobRemoved, not JobAdded, all notifications will again call notifyAll() and the same notification will be triggered twice. commit 4dc17912b98fc929c2becf3612a7d999b1068a4c Author: Frederik Heber Date: Mon Apr 23 14:40:15 2012 +0200 Regression test mpqc-jobs now requires "correct" results from stand-in mpqc program. - that is, we now extract the results and combine them in controller. commit c24c1eb7b4600bd8296ca7204cf8ecbef7a2a9c9 Author: Frederik Heber Date: Thu Apr 19 20:24:04 2012 +0200 Completed printMPQCReceivedResults() in controller by using MatrixContainer::AddMatrix(). - result is printed at end of function. - Added helper function to controller to parse total number of atoms from Adjacency file. - NOTE: This function is only temporary. It should lateron be outsourced to its own class, maybe as a functor, and then eventually be merged into the main molecuilder program to be accessible inside an Action. commit 719382df863b030e0fcc3f37b3a0981bab4477d1 Author: Frederik Heber Date: Sat Apr 21 12:08:17 2012 +0200 Added regression test to Fragmentation/Automation whether mpqc jobs work. - this test uses stand-in mpqc, as true program would require extra dependency. commit 160e0a15bffdc80a8e053121b1cbc6c6fd59994a Author: Frederik Heber Date: Sat Apr 21 12:07:30 2012 +0200 Added stand-in mpqc program and regression test on it to Fragmentation/Automation. - the stand-in mpqc is used to simulate working mpqc in the background, it just prints a present mpqc output file. commit c4de89d26d119cae6a78137012b22ced38eec193 Author: Frederik Heber Date: Mon Apr 23 13:43:07 2012 +0200 MPQCCommandJob now takes command argument to the mpqc executable. - This allows to use stand-in mpqc instead of true mpqc executable. commit f09b50f20b91377882b03d62f439f08e73d58148 Author: Frederik Heber Date: Thu Apr 19 23:06:07 2012 +0200 GetNextJobIdOperation now may request a vector of ids. - otherwise we needed multiple phase one calls, ever requesting a single id. - now, we state how many ids we want and may eventually get one by one as desired. - adapted FragmentScheduler::ControllerListener_t and FragmentController accordingly as we now have to exchange the desired number of ids, too. - requestid() needs now an additional parameter. commit 51b7eeb3ac2cd1d8cc16f17119141ccc2cf55117 Author: Frederik Heber Date: Thu Apr 19 22:16:26 2012 +0200 GetNextJobIdOperation now has check whether id is available. commit 74f1a2d67b18cf148fc4522ea30ace112ca07000 Author: Frederik Heber Date: Thu Apr 19 20:22:48 2012 +0200 Added MatrixContainer::AddMatrix() which takes of the functionality of ::ParseMatrix(). - AddMatrix simply adds a received MatrixArray to the internal matrix. Also, we restructured the function a bit: check preconditions, allocate, then set. - ParseMatrix() creates first such a MatrixArray which it parses from a file. commit e76a1c5e2ab6ea682221fb35288242c12bf558f3 Author: Frederik Heber Date: Thu Apr 19 16:42:11 2012 +0200 Placed src/Fragmentation/Automation behind src in main Makefile.am. - hence, now libMolecuilderFragmentation is compiled before ...Automation as required. commit 3f5010bd81dc40d829b54e62f41a8d5427934449 Author: Frederik Heber Date: Fri May 18 09:21:43 2012 +0200 Controller now links to libMolecuilderFragmentation and has initial prinMPQCReceivedResults(). - extended printReceivedMPQCResults. commit aed6ee694c426e4ef36400ee77bfda98ae14b9ec Author: Frederik Heber Date: Fri May 18 09:21:28 2012 +0200 Placed some commodity functions from controller.cpp into FragmentController. commit 5f4984f690c3e4194bd739610db83a4f144b1304 Author: Frederik Heber Date: Thu Mar 8 16:15:51 2012 +0100 FragmentScheduler::recieveNotification() now asserts that we only received desired notifications. commit ea9faca96ac8509ac0091564386e05023b809156 Author: Frederik Heber Date: Wed Mar 7 11:36:43 2012 +0100 TESTFIX: Extended all regression tests Fragmentation/Automation to use listening poolworkers. Merge with their introduction. commit 33124dec4fa70d4258c7b785a0902de720274941 Author: Frederik Heber Date: Sun Mar 4 21:07:18 2012 +0100 Deleted WorkOnJobOperation and removed form FragmentWorker. - note that FragmentWorker now does nothing anymore. commit 3124a5be657ed25832378912e6143c43758f1213 Author: Frederik Heber Date: Sun Mar 4 21:36:27 2012 +0100 Moved FragmentController from Controller/, removed dir Controller. commit 69fe04fec043838b8e4b826700de98fccccb6355 Author: Frederik Heber Date: Sun Mar 4 21:34:33 2012 +0100 Renamed CommandRegistry -> OperationRegistry. commit aa9e4ac232ea89d053f07c91b8cb1ff9c95b284c Author: Frederik Heber Date: Sun Mar 4 21:05:05 2012 +0100 Moved Controller/Commands to Operations/ folder and split into Controllers, Servers, Workers. - each will eventually go into its own Registry. - also changed all include occurences in all files. - fixed some includes in the definition where path was used (header always resides in same folder as definition). commit 3b0853faa89e14526ef794cc75f7c850087c9b21 Author: Frederik Heber Date: Sun Mar 4 21:26:06 2012 +0100 FIX: Renamed SendResultsOperation -> ReceiveResultsOperation in file and class. - also renamed name sendresults -> receiveresults. - also renamed ControllerChoices enum SendResults -> ReceiveResults. commit 1989b03432c8bd52413852ecbb0e4c4b538bef41 Author: Frederik Heber Date: Sun Mar 4 21:11:38 2012 +0100 FIX: Renamed ReceiveJobsOperation -> SendJobsOperation in file and class. - also name is receivejobs -> sendjobs. - also renamed ControllerChoices enum ReceiveJobs -> SendJobs. - The Operations should have been named actively, i.e. from the point of the instance who executes it. commit e9f3e7572c0950fae9afc6e67da1e39f1e2a8a6b Author: Frederik Heber Date: Sun Mar 4 23:30:57 2012 +0100 Added begin(),end() for idle_queue of WorkerPool. - this allows shutting down Workers without marking and then unmarking them as busy by FragmentScheduler. - also the returned iterators are const and hence allow to see the which workers are idle but not to modify them this way. - also added WorkerPool::hasBusyWorkers() to allow for waiting server shutdown until all workers have returned from work. - added some tests for this in WorkerPoolUnitTest. commit 22bdace488eca02a9cd8f1c3d8688444c87792ab Author: Frederik Heber Date: Mon Mar 5 00:42:50 2012 +0100 Changed FragmentScheduler::removeAllWorkers() by ShutdownWorkerOperation. - so far, we have to unmark workers busy after getting them via getNextIdle..() - FragmentScheduler does now not remove PoolWorkers after a single job. commit 8a3d097fd0141b1a52466e77daff5dd3eabc7952 Author: Frederik Heber Date: Mon Mar 5 00:41:43 2012 +0100 Added PoolWorker::shutdown(). - overloaded shutdown(int) with shutdown() and the former is now just a wrapper to shutdown() that additionally calls removeme(). - PoolWorker branches on id of received job, if it's JobId::NoJob, we shutdown. commit b89fa8af0eec7b3928ab6e4d33e9e43823fceeea Author: Frederik Heber Date: Mon Mar 5 00:40:23 2012 +0100 Added synchronous ShutdownWorkerOperation. - ShutdownWorkerOperation sends static NoJob as shutdown signal. commit f01f8a10b2ef9eef60cf558db9053a30725580d2 Author: Frederik Heber Date: Sun Mar 4 17:24:25 2012 +0100 FragmentScheduler is now an Observer of JobsQueue and pool. - ControllerListener gets a bound function shutdown() to pass on shutdown request from controller on to FragmentScheduler itself to shutdown both sockets and the io_service. - FragmentScheduler is notified of JobAdded and WorkerIdle to send out jobs to workers. commit ffa32e7b94d6ed361ac4aa91bf42743ba70c80b0 Author: Frederik Heber Date: Wed Feb 29 18:39:33 2012 +0100 WorkerPool is now observable. - this is preparatory for allowing FragmentScheduler to contact idle Workers and sending them possibly present jobs. - added NotificationObserver in unit test. commit 62166575c2b2f97106475bd1a4696da82b9bfae7 Author: Frederik Heber Date: Wed Feb 29 17:07:33 2012 +0100 FragmentQueue is now observable. - this is preparatory for allowing FragmentScheduler to send jobs to worker when new ones have arrived. - added NotificationObserver to FragmentQueueUnitTest. commit 6ec3329e7d735e980343cf430257a8b3a9423be2 Author: Frederik Heber Date: Sun Mar 4 17:23:01 2012 +0100 FragmentScheduler now uses WorkerChoices for handling connection workers. - Workers always first send address, then their choice and depending on this we branch into various handlers. commit 2d38fd67a580d3256141fe20d40eab5ab0f668d3 Author: Frederik Heber Date: Sun Mar 4 17:12:28 2012 +0100 Added signal handling function to poolworker to intercept ctrl-c via PoolWorker::shutdown(). - this is for gracefully shutting down the worker (i.e. letting server know that we are off). - Added PoolWorker::shutdown() function to gracefully shutdown. - We use RemoveFromPoolOperation() to unlist from server's pool. - PoolWorker now contains ref to io_Service in order to stop the service on shutdown. commit db1325170ef769b0c1ef55f9b3523abd8c1df7eb Author: Frederik Heber Date: Sun Mar 4 17:11:54 2012 +0100 Added regression test Fragmentation/Automation for enrolling in pool. commit 235e61e299ecd29d7d3aed3c5fee9ade4bf1bbac Author: Frederik Heber Date: Sun Mar 4 17:27:28 2012 +0100 SubmitResultOperation now correctly gives choice after sending address. commit 591c59ae406565a533d0bb66488a053c9aede948 Author: Frederik Heber Date: Sun Mar 4 17:26:38 2012 +0100 EnrollInPoolOperation now correctly gives the choice after sending address. commit e4061b4cee2be34698212668a86aab6e186e75fc Author: Frederik Heber Date: Sun Mar 4 17:04:37 2012 +0100 Added RemoveFromPoolOperation. - is a SyncOperation for the Worker. commit 07ceaccbcb6b9bfa0ef654e065f18d125b78c186 Author: Frederik Heber Date: Sun Mar 4 17:03:13 2012 +0100 Added file WorkerChoices.hpp. commit 6ca805ad723d98879d5404f778b91eb7e5c4a3d1 Author: Frederik Heber Date: Sun Mar 4 16:59:32 2012 +0100 Added SyncOperation and common base Operation. - CommandRegistry stores again Operation which is now the common base class of Async- and SyncOperation. - ShutdownOperation is now a SyncOperation. commit 7a16336653de6e52e238202e8df6ad960f9e47c7 Author: Frederik Heber Date: Sun Mar 4 17:05:02 2012 +0100 Added template functions for sync_read() and sync_write() to Connection. - also factored our prepare_write from async_write() which is needed in case of sync_write() as well. commit e0d6a3ef8f1f290d186970b88fb22dc92a5c364e Author: Frederik Heber Date: Sun Mar 4 16:55:32 2012 +0100 Renamed Operation -> AsyncOperation in file and class. - this is preparatory to also have SyncOperation which both derived from a common base Operation. - CommandRegistry for the moment stores AsyncOperation instances. commit b9452396f72d117ad90a7bdacbb94f2695a9ca61 Author: Frederik Heber Date: Sun Mar 4 17:18:32 2012 +0100 FragmentQueue can now resubmit jobs. - we keep an internal list of jobs currently being worked on. If the worker returns with a failure, they can be resubmit to the queue. - added unit test function on this. commit bf981ca088b97e7ecbc236600a5b199ca98aca6e Author: Frederik Heber Date: Sun Mar 4 17:08:09 2012 +0100 FIX: Replaced calls to Operation::handle_FinishOperation by ::handle_ ... - if Operation::handle_FinishOperation() is protected member function, we call only bind to it like this. commit 132e476fd215329cbf716c601844fe42a59c86f0 Author: Frederik Heber Date: Thu Mar 1 18:55:09 2012 +0100 Renamed SchedulerStates -> ControllerChoices enum. - extracted from types.hpp as well. commit e21abcf7f09c17a5afb0f116b631eb06de01e973 Author: Frederik Heber Date: Wed Feb 29 09:32:10 2012 +0100 HUGE: Added PoolWorker and rewrote parts of FragmentScheduler. - PoolWorker uses EnrollInPoolOperation and SubmitResultOperation to enroll, get the job and submit the result. Enrolling and getting the job is combined to have the same workflow for the moment until the pool is fully implemented. - WorkerListener_t in FragmentScheduler has a callback instance to access sendJobToWorker function for sending jobs when a Worker has connected. ToDo: - FragmentQueue needs a callback function when new jobs have been added. - WorkerPool needs a callback function when a worker is idle. - WorkerListener_t then does not need a callback anymore, just access to the pool who has then the callback. commit 11c21b7f3ddf1ef6025eb9945fc869cf8cc5a735 Author: Frederik Heber Date: Tue Feb 28 16:08:09 2012 +0100 Added WorkerPool to handle a pool of Workers. - also added unit test. commit 2f8b5417bc2ae7487c3df56fe8d655dc1cd1d50e Author: Frederik Heber Date: Sun Feb 26 21:19:19 2012 +0100 Added WorkerAddress, serializable host+service address. - also added unit test on comparison operators and serializtion. commit 97a9394a648767b24b99e47d573c258923c8b21f Author: Frederik Heber Date: Sun Feb 26 21:13:23 2012 +0100 Restructured convenience libraries for Fragmentation/Automation. - new convenience library libFragmentationCommands containing all Operation derived classes. - renamed libFragmentationAutomation -> libFragmentationAutomationHelper. - FragmentController and CommandRegistry removed from this library. commit 08460020201704abaec85c6af776533801780a62 Author: Frederik Heber Date: Wed Feb 22 19:33:19 2012 +0100 Refactored main part in FragmentWorker into WorkOnJobOperation. - essentially FragmentWorker just contains this Operation and nothing else. commit 41ea4dcec191bfe8e5e435a33f8e65dc550b603d Author: Frederik Heber Date: Wed Feb 22 18:50:06 2012 +0100 Refactored Listener out of FragmentScheduler. - this is preparatory for creating PoolWorker class, i.e. Worker that listen for jobs sent to them by the server. - the connection is just reset() on new initiateSocket(). - closeSocket() correctly shutdown()s and close()s the socket. - Note: As ControllerListener receives new jobs and thus knows when the server is required to listen on worker port again, it needs a bound function to WorkerListener_t::initiateSocket(). This will be removed when the new Pool is in place that handles Worker connections. commit 0329de4c0f9b45a0d39b7145fd164e4620360370 Author: Frederik Heber Date: Wed Feb 22 17:50:32 2012 +0100 Removed duplicate code in FragmentScheduler with initiating new connections. commit 270436dde6872b74f1947ee0d3bc95cb20921ce3 Author: Frederik Heber Date: Wed Feb 22 17:41:15 2012 +0100 Added specific Command to controller to receive mpqc results and combine them. - new entry in CommandIndices ReceiveMPQCIndex. - is not done. This should be implemented using the already present methods in the rest of MoleCuilder. This should go into the function printreceivedmpqcresults(). commit 05180d13d4815ea7c46dcc076436985591f79710 Author: Frederik Heber Date: Fri Feb 17 11:34:09 2012 +0100 Added output stream operator to MPQCData. commit 2f9056022dc168475077765be214c8d1ab48b0e5 Author: Frederik Heber Date: Thu Feb 16 13:40:35 2012 +0100 createjobs now gets two options: command, argument. commit 6b19d1cd463fa7af766aebc7c6de9fe62c92a23d Author: Frederik Heber Date: Thu Feb 16 16:09:52 2012 +0100 New GetNextJobIdOperation for obtaining next available JobId from server. - as JobId is required to create the job, we now need two, separate communication phases: gathering info (ids) and sending info (jobs). - new SchedulderState GetNextJobId along with handlers. - new GetNextJobIdOperation that requests another id which is internally stored into a list, along with a getter that extracts them one by one. - controller's createjobs() and parsejobs() each take an nextid parameter now. commit 6692dc69fe16e77e1ee0db99a226e19baf98cc24 Author: Frederik Heber Date: Thu Feb 16 12:12:40 2012 +0100 CheckResultsOperation now receives both scheduled and done jobs. commit e53356af9193288003129026bf6e2aa0a00d43db Author: Frederik Heber Date: Thu Feb 16 11:52:47 2012 +0100 Added getPresentJobs() to FragmentQueue. commit 6bf5f1a4eb0f1996d25174337ad612f319d9529d Author: Frederik Heber Date: Wed Feb 15 15:17:54 2012 +0100 Added serialization capability to MPQCCommandJob. - added unit test and operator==() (including test). commit f36ef1b00855ba79486efe5f6af107829f25571a Author: Frederik Heber Date: Wed Feb 15 15:14:19 2012 +0100 Controller has new function addjobs. - addjobs parses mpqc input file and creates MPQCCommandJob which is sent to send jobs - old sendjobs is now createjobs which creates empty SystemCommandJob. - added new class GlobalJobId which holds a global JobId such that FragmentJobs created by Controller each have a unique id. NOTE: This should probably be replaced by IdPool implementation when Fragmentation/Automation is integrated into rest of molecuilder. - dummyInit() to have MPQCCommandJob instances known to FragmentScheduler. - TESTFIX: Adapted regression tests Fragmentation/Automation adding-jobs, server-worker, and completerun due to command token change. commit f38b3e091db97690092919430d9fb5db209a5cf0 Author: Frederik Heber Date: Tue Feb 14 17:01:24 2012 +0100 Extended MPQCCommandJob's extractString to understand MP2 keywords. commit 4d96df7a9cca85e109f780323910daa954f83481 Author: Frederik Heber Date: Thu Feb 9 16:27:56 2012 +0100 Added MPQCCommandJob and result container MPQCData. - MPQCData contains data to be serialized into FragmentResult. - MPQCCommandJob implements mpqc-specific result extractor. - added unit test for MPQCCommandJob. - added unit test for MPQCData. commit 08afc1fce404163a9dfa58af99de7b37a85cd6ef Author: Frederik Heber Date: Mon Feb 6 10:57:56 2012 +0100 Abstracted FragmentJob and introduced SystemCommandJob which has its former functionality. - FragmentJob now has just virtual function Work(), not implemented. - former command and outputfile is taken over by SystemCommandJob. - a FragmentJob or derived class is default cstor'ed always with JobId::IllegalJob. - so far SystemCommandJob captures command's stdout and parses it back from file. - SystemCommandJob has virtual method extractString() to be adaptable to the output of various system commands. - changes almost everywhere due to SystemCommandJob taking place of FragmentJob and FragmentJob::ptr and FragmentResult::ptr requirements. - added FragmentWorker::dummyInit() to enforce binding of the executable to all possible derived FragmentJob's. - added unit test for SystemCommandJob. - added FragmentJobStub that implements a no-brainer job for testing. commit b98c9dea0dff5aea090544dacb4a93d64358ef2b Author: Frederik Heber Date: Mon Feb 6 10:43:38 2012 +0100 Moved FragmentResult to subfolder Results. - changed includes and Makefile.am's. commit 1fd2f758fe4d042ded1e377d3be891951a615cc5 Author: Frederik Heber Date: Mon Feb 6 10:33:27 2012 +0100 FragmentResult is now also encapsulated in boost::shared_ptr. - this allows in the same way to have different implementations of an abstract FragmentResult class. commit 2bc18a78211106b1dfb20d3bd8aa2499c74d68f2 Author: Frederik Heber Date: Mon Feb 6 09:58:48 2012 +0100 Moved FragmentJob to subfolder Jobs. - changed all includes and Makefile.am's. - changed order of Jobs in Makefile.am. commit e85269aee25fa595d6e63a4613a546273c443f9f Author: Frederik Heber Date: Mon Feb 6 09:43:07 2012 +0100 FragmentJob is now passed inside boost::shared_ptr. - FragmentJob is to become just an abstract interface to a variety of jobs and we cannot instantiate this interface. We can only pass it around via ptrs. Therefore, we need this switch to shared_ptrs. commit 7227b5861a8faba40a4e06c8598f6a1bb5ccb1b5 Author: Frederik Heber Date: Tue Jan 17 20:10:35 2012 +0100 FragmentJob now executes a specific string as command along with an outputfile to work on. - stdout is parsed in as FragmentResult::result, return from std::system is placed into FragmentResult::exitflag. - createjobs() in controller.cpp uses cat and "Nothing" to mimick the same behavior as before. - removed intermediate deadline_timer usage in ::Work(). commit af1073afa007409482b4fb02c9b833481f9d7d72 Author: Frederik Heber Date: Fri Mar 9 10:47:57 2012 +0100 FragmentResult has additional variable exitflag. - this is to store the result flag from a system call. commit b3ba591c5efcba5ea69c46bc16d623f8dc16afaa Author: Frederik Heber Date: Mon Dec 12 09:32:27 2011 +0100 Operations are now contained in CommandRegistry in FragmentController. - this is a tiny bit less nice due to required static_cast<>, however in the end we hopefully win due to possible placement inside a Queue. - FragmentController:getExitflag() can now just browse through all present Operations and return the first fail. - TESTFIX: changed regression tests Fragmentation/Automation a bit due to: - server-worker,addingjobs: addjobs now always adds two jobs. - JobAdder, ResultChecker, ResultGetter, and Shutdowner have been removed in favor of Controller and a specific command token. commit 50f4184e01c29a43b8df7405617024a05b8b2f9e Author: Frederik Heber Date: Sun Dec 11 18:43:13 2011 +0100 Removed all those tiny relay functions in FragmentController. - we now use the getter/setters in the derived Operations directly. commit 3a1346d7b0395f88ff1b64df86af48435aa993bd Author: Frederik Heber Date: Sun Dec 11 18:31:37 2011 +0100 Operation now requires an internal name to be placable in a Registry. - derived class give specific name in their cstor. commit 25b30aa890962348fd6d25334f39f8ee621c9843 Author: Frederik Heber Date: Sun Dec 11 18:15:53 2011 +0100 FIX: Added disconnect() call to end of Operation::handle_FinishOperation(). - this should close the socket after the communication has completed as each derived class uses handle_FinishOperation() as last callback function. commit 96c83b29e7b5914533eaf44412eef03d069a20be Author: Frederik Heber Date: Sun Dec 11 18:14:24 2011 +0100 Neither FragmentController not Operation need host or service as params to Cstor anymore. - due to the last change these are given directly to Operation::operator(), hence we have removed them from FragmentController's and Operation's cstor. - removed Operation::getEndpointIterator(). - all small controller executables have been adapted accordingly. commit 9948a765b2debfa507c64194b464a960ac1a7c34 Author: Frederik Heber Date: Sun Dec 11 17:59:08 2011 +0100 Operation::operator() now contains everything to get the endpoint and connect. - getting the endpoint is placed in operator() which needs host and service as parameters. - derived classes just implement handle_connect whose virtual function pointer is boost::bind in Operation::operator(). - this all makes it very easy to implement new commands for the Controller. - all handle_connect_... of course are now the above implementation. - all connect_... are now contained in Operation::operator(), hence have been removed. commit d6fe761176eef8308b81d1ceb788fe4bf80e3d8d Author: Frederik Heber Date: Sun Dec 11 17:44:18 2011 +0100 Added a "testfunction" to each ...Operation along with handle_connect. - this is to test whether we can place the initial connect into the class Operation and have only specific functions required lateron in the derived classes. commit 167b63307c9c9cb05dd758fe1c2b80be02bdb4a2 Author: Frederik Heber Date: Sun Dec 11 17:20:52 2011 +0100 Extracted all other derived Operation's too and placed into folder Controller/Commands. - TESTFIX: Changed regression tests Fragmentation/Automation with respect to the exit code from controller. commit 73d6fce636ade8bb851250adf52ad79adf5225a2 Author: Frederik Heber Date: Sun Dec 11 17:00:42 2011 +0100 Shifted all Controller stuff into own subfolder, extract class Operation. - extracted class Operation from FragmentController and place into subfolder Controller/Commands. - all files containing main() functions are also moved to Controller. commit 1dc209b83f84861106021c6a70d51182a306d7fc Author: Frederik Heber Date: Sun Dec 11 16:24:20 2011 +0100 Enhanced libMolecuilderFragmentationAutomation in Fragmentation/Automation/Makefile.am. - libMolecuilderFragmentationAutomation needs to occur after (above) libMolecuilderFragmentJobs. - FragmentController sources now contained in ...Automation. commit 5adb84984c3a69ab1022d16497045fd243ee9087 Author: Frederik Heber Date: Sat Dec 10 16:17:06 2011 +0100 Factored out Operation and derived all operations from it. - a number of subclass of FragmentController that encapsulate each operation. - Operation contains getEndpointIterator(), handle_FinishOperation() and disconnect(). - Operation now also contains Exitflag that was formerly in FragmentController. - new derived Operations: ReceiveJobsOperation(), CheckResultsOperation(), SendResultsOperation(), ShutdownOperation() that each contain the connect_..., handle_... functions. - functions to initiate operation have been placed into these Operation- derived classes as implemented virtual operator(). - most of the required member variables have also been associated with the class that needs them. Getters and Setters have been relayed for the moment. - each Operation as of now needs ref to connection, host and service. This should be changed and the stuff around getEndpointIterator() refactored along with it. commit fb2324b496d0bc0e217e446455628f8e1d0b0aa5 Author: Frederik Heber Date: Fri Dec 9 22:02:14 2011 +0100 Added regression test Fragmentation/Automation with a complete run of Server, Worker, and controllers. - TESTFIX: Shortened length of regression test Fragmentation/Automation server-worker as most is extensively tested in complete-run. commit c837ad09370c4c1c8890297774ef426315ec3856 Author: Frederik Heber Date: Fri Dec 9 22:00:50 2011 +0100 Added regression test Fragmentation/Automation on getting results. commit db34f216525f470ee4838943ab8d5ae0f4c62dd8 Author: Frederik Heber Date: Fri Dec 9 21:55:34 2011 +0100 Added regression test Fragmentation/Automation on checking state. commit 6772ebf1a929237c6928cb6bd9c7f998b7f733e4 Author: Frederik Heber Date: Fri Dec 9 21:48:48 2011 +0100 Added regression test Fragmentation/Automation on adding jobs to Server. commit 03195ad759d9d0369860828cc4436a5ce6afbd8b Author: Frederik Heber Date: Fri Dec 9 21:39:12 2011 +0100 Added regression test Fragmentation/Automation on Server shutdown capability. - NOTE: each regression test in Fragmentation/Automation needs its own set of ports such that they may run in parallel as well. Currently, we start at port 1025 and use an offset of 5 in between tests. commit dba6d162581bd1026fa90391ce4c3c62bdde0d38 Author: Frederik Heber Date: Fri Dec 9 21:33:43 2011 +0100 Added FragmentController::getPresentJobs(). commit 0196c62295fdde1b6850b1f16abcdfffe6d46877 Author: Frederik Heber Date: Fri Dec 9 21:11:50 2011 +0100 Added Shutdown as choice to ControllerChoices. - new helper app Shutdowner that shuts down Server. - TESTFIX: Changed regression test Fragmentation/Automation where now Shutdowner is uses instead of Jobadder with 0 jobs to power down controller socket. commit e70b9dc00a22a0801131763acf7c71937581ac4d Author: Frederik Heber Date: Fri Dec 9 20:17:35 2011 +0100 Renamed regression test Fragmentation/Automation. - there are more to come and this just tests server/worker combination. commit 778abb8ccf156d1308e41e6fad137c7987dc7c8f Author: Frederik Heber Date: Fri Dec 9 19:18:14 2011 +0100 Added ResultGetter and capabilities to receive calculated results to FragmentController. - Added enum (and file) ControllerChoices that defines the state of FragmentScheduler. - depending on what is desired the Scheduler switches between these states and either receives or sends information. Requires new member variable choice because receival is of course asynchronous (see note in previous commit). - FragmentController has additional functions connect_get() and handle_connect_get() to receive results. - connect_calc() and connect_check() now just the choice whereas the actual sending and receiving is done in handle_... functions. - handle_FinishOperation() is the common final callback function for all three of these functions. - FragmentScheduler contains an internal list of delivered results. - FragmentScheduler only initiates worker socket when jobs are present. - FIX: FragmentScheduler does only send results that are done and only once. - TESTFIX: Removed third Worker that receives NoJob as socket is powered down before because queue has run empty and we haven't add new jobs. commit b9c48666be399d007fd031b2d636eba8227f227d Author: Frederik Heber Date: Thu Feb 16 17:14:38 2012 +0100 Added getAllResults() to FragmentQueue. - added convenience function ::IsPresentResult(). - this is to replace FragmentSchedulder::getResults() which relies on jobs being filled still. - added unit test on getAllResults(). commit 402bde72b40b66cbc74451c852e07802a12af199 Author: Frederik Heber Date: Fri Dec 9 21:10:53 2011 +0100 Placed initiating sockets from Cstor of FragmentScheduler into helper functions. commit 3c4a5ec6700394439a96a697b6964a634d5ec97f Author: Frederik Heber Date: Fri Dec 9 18:11:55 2011 +0100 Added ResultChecker and capability to check on computed jobs. - added handle_connect_check() to FragmentController. - FragmentScheduler::handle_AcceptController() switches between _ReceiveJobs or _CheckResultState depending on present jobs and done jobs. We use FragmentQueue::getDoneJobs() to store number of jobs handling connect. - TESTFIX: Enhanced regression test Fragmentation/Automation to use ResultChecker as well. commit db03d94db34e97b2e16df2332a1953abdf66be98 Author: Frederik Heber Date: Mon Nov 28 00:20:43 2011 +0100 Added possibility to add jobs via a FragmentController. - Server listens on another port for a controller to connect, also now has an Exitflag. - Controller can add a bunch of jobs. - JobAdder can successfully add a number jobs to Server, if 0 are sent, the socket shuts down. - TESTFIX: extended regression Fragmentation/Automation test to use Jobadder as by default Server starts with no jobs in the queue. commit 8ee5ac067548a00b728f1a0f0c9f085fbb85cd93 Author: Frederik Heber Date: Mon Nov 28 00:02:30 2011 +0100 Added function getDoneJobs() to FragmentQueue. - this allows to check on the state of calculations. commit cde0fedccbba0b6cd10bc0012657ac36bee2f2a9 Author: Frederik Heber Date: Sun Nov 27 23:57:39 2011 +0100 Placed FragmentJob, ..Queue, and ..Result into convenience library, atexit into another. - this speeds up compilation as we don't have to compile some modules multiple times. commit 9875ccf9a4c2201731b5bab9675d60bc378e1671 Author: Frederik Heber Date: Sun Nov 27 21:52:48 2011 +0100 Added FragmentQueue::pushJobs() to add a bunch of jobs simultaneously. - also extended unit test. commit 2445fbdb67fdcb7bbc91286479bf3636ac96f8b1 Author: Frederik Heber Date: Sun Nov 27 21:09:01 2011 +0100 Added private default cstor to FragmentResult. - enhanced unit test by a vector test and this made the above default cstor necessary. commit 083490d5d35f5aa2fd1a49ffc80c90fb17f5eff4 Author: Frederik Heber Date: Sun Nov 27 20:03:10 2011 +0100 Renamed default handle_..() functions of FragmentSchedulder and ...Worker. - new names resemble in what context they appear (i.e. at the end of what operation they are called). commit ef27671d6947ddc9fc6ee4fd2fbb213a4ab7174a Author: Frederik Heber Date: Sun Nov 27 19:38:26 2011 +0100 Server and Worker now also correctly exchange result. - Server uses FragmentQueue which also stores the obtained result. - Worker calls received FragmentJob::Work() function and returns the thereby calculated FragmentResult. - Regression test for Server/Worker now checks whether job #1 is listed twice, this basically checks whether the result has been exchanged. There have been some concepts to understand to get this working and these shall be briefly recorded here: - asynchronous communication can only work on objects that live beyond the scope of where they have been called, e.g. therefore FragmentScheduler contains a FragmentResult and FragmentWorker a FragmentJob instance. They receive this object and need the write access in the scope of the aync. comm. and not of the caller's scope. This is probably because the initial argument is only used to set up a buffer of correct length. However, the received instance is created/deserialized first when the communication is completed. And this may well be after the caller's scope has been left. - This is different to read operations as probably there the object to send is immediately serialized and placed into an internal buffer such that later access is only to this buffer and not to the original instance which therefore does not need to exist anymore. That's why the above Schedulder and Worker do not have the "other" instance as class members as well. - chaining asynchronous communications, e.g. a write after a read has been performed, can only be done by using the callback functions that the async_write/read gets as parameters. They are called when the one operation has finished and therein the next operation can then be launched. This way a successful chain is executed. commit 630a6e76e8fd0da3d37d517432a74ebda2a494f2 Author: Frederik Heber Date: Sun Nov 27 19:35:35 2011 +0100 Increased Verbosity for Server and Worker. commit 0bdd51bd1d38a734cb760046b677f4ee890ac7b7 Author: Frederik Heber Date: Thu Nov 24 21:34:51 2011 +0100 Added regression test for Server/Client construct. - currently we expect the Server to shut down after the queue is discovered empty. - added Exitflag and associated enum to FragmentWorker. - FragmentScheduler exits gracefully when there are no more jobs in the queue. commit a1b77dd03c096829276e87f213300eb7c4efcfdf Author: Frederik Heber Date: Thu Nov 24 21:24:07 2011 +0100 Added call FragmentJob::Work() to FragmentWorker::handle_read(). - FragmentWorker also now contains FragmentResult instance, pendant to FragmentJob. - added FragmentResult cstor with empty parameters (uses JobId::NoJob). commit 7b22e9544beb54c2218ef5e47d9851e8603c779d Author: Frederik Heber Date: Thu Nov 24 21:21:20 2011 +0100 FragmentJob now contains Work() function. - Work() encapsulates all the work to do to calculate the FragmentResult such that FragmentWorker does not need to know anything about it. - added WorkTest to unit test along with FragmentResultStub. - added FragmentResult.[ch]pp to Worker sources in Makefile.am. - also unit tests are now linked only against boost libs they really need. commit c7deca229684c7b65fd3575bfb9ad413b64a2dc4 Author: Frederik Heber Date: Thu Nov 24 20:21:52 2011 +0100 Added static NoJob (id0) to FragmentScheduler to indicate empty queue to client. - added enum to class JobId with special ids. commit b0b64c36d561d4b02ddd580dd842d288f95b6141 Author: Frederik Heber Date: Thu Nov 24 20:12:49 2011 +0100 FragmentScheduler now contains a FragmentQueue and serves single jobs therefrom. - e.g. currently we only push one job, hence only a single worker is served. Others afterwards don't receive a job. - we lack a mechanism to give feedback to the client, i.e. a pseudo job such that he knows that the queue is empty right now. Later this should then indicate a wait (for a specific amount of time). commit 12d15a837efe9a69ef0528ec526ba2adbf8f7c09 Author: Frederik Heber Date: Sun Oct 23 23:24:18 2011 +0200 FragmentQueue now allows for removal of jobs. - new static NoResultQueued states whether job has been popped, but result is missing so far. - extended FragmentQueueUnitTest. commit 57876b5bc8ae81d557361f9ed21754f1be23d432 Author: Frederik Heber Date: Sun Oct 23 22:54:34 2011 +0200 Added serialization unit tests on FragmentJob and FragmentResult. commit 02f34688f788967fdd4765560ba2cde4ccd5ba81 Author: Frederik Heber Date: Sun Oct 23 22:23:56 2011 +0200 Extended FragmentQueueUnitTest. - extended by tests on its job and result queues. commit af81f809ad4251794e6aad0bbbb5a062ccb10153 Author: Frederik Heber Date: Sun Oct 23 22:22:27 2011 +0200 FIX: FragmentQueue now obtains id of FragmentResult directly from it. commit b05673868c5ee97ab3b5a5b15c41567fc0659845 Author: Frederik Heber Date: Sun Oct 23 22:20:19 2011 +0200 Introduced JobId as an own class that Job and Result inherit. - FragmentJob and FragmentResult may thus have all other info as public, only the id has to be secured from false access. commit b5ebb569dab339861535e482277051aeb3f8943a Author: Frederik Heber Date: Sun Oct 23 21:07:41 2011 +0200 Added FragmentQueue, FragmentResult, and scaffold for unit test on FragmentQueue. commit 4b58cccfcae20f61dca5d2d18f77c1db61bb9a98 Author: Frederik Heber Date: Sun Oct 23 21:01:52 2011 +0200 JobId is now own type JobId_t. commit b14f17df0995c6157c06a55a1b9596c3ec9a9d52 Author: Frederik Heber Date: Mon Nov 21 11:01:38 2011 +0100 Renamed s11n_example executables to Server and Worker. commit e3a9c9095467adb37758c5092f95060f1fa98969 Author: Frederik Heber Date: Mon Nov 21 09:48:32 2011 +0100 FragmentWorker::handle_connect can deal with multiple endpoint resolution. commit 00a248e52e820b8b1e298f757c031943126dee7d Author: Frederik Heber Date: Mon Nov 21 09:34:43 2011 +0100 Renamed file client.cpp -> Worker.cpp. commit f7f99510d4b31a8e2923b0af4c9fc96e6ef2fa3f Author: Frederik Heber Date: Mon Nov 21 09:32:56 2011 +0100 Renamed file server.cpp -> Server.cpp. commit cd4a6e84fc65152a21053ba13c6d87bca6e724ae Author: Frederik Heber Date: Mon Nov 21 09:22:22 2011 +0100 Renamed file StockServer -> FragmentScheduler. commit 8c9596e4625116d26a89a0b50b4ed923834abde4 Author: Frederik Heber Date: Mon Nov 21 10:45:52 2011 +0100 Renamed class StockClient -> FragmentWorker. - renamed friend declaration in FragmentJob. commit 926a490eef5be0923876b74bb122c92134f2147a Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Renamed class StockServer -> FragmentScheduler. commit af3aedfa905ac3865913f9a11dba55621206e94e Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Introduced Info in several functions, replaced connection.hpp by Connection.hpp. commit c6bcd0d3471aa10310cb252b40ebb9963d2eb216 Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Added MemDebug.hpp to StockServer. commit 00d4fb757b6bdfe59277afc18c19b31bdab0cd1e Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Added MemDebug.hpp to StockClient. commit f938420ab6a003f14dcfcd95a908c111ecf80599 Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Added config.h inclusion to all Stock*. commit 31ca5f07f01e2d94689a06092d8e5b8d84a2a909 Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 StockClient and StockServer now exchange FragmentJob's instead of stock's. - for the moment StockClient is friend of FragmentJob to access contents. commit 963c3bb7ef11b28ed00b41281604dbd75f87d0d9 Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Took connection out of namespace. commit a636f8d76f52b58d724bf2ba92f76d2df9c67fd0 Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Took StockClient out of namespace s11n_example. commit 2eff32bc86b5a24a223754e4992ad808b3427255 Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Renamed client -> StockClient, split off StockClient into own module. commit 8b65727b83e15dcfd1ce88625b8a59af32e5baab Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Took stock out of namespace. commit ed2c5bf77d3337e917dab023057b5246bb07acef Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Took StockServer out of namespace s11n_example. commit 72eaf7f2ba3489095828d8e575443ea4b1731b0d Author: Frederik Heber Date: Fri Nov 18 21:29:36 2011 +0100 Implemented working s11n example from boost::asio and refactoring ... - removed Worker test example. - rename class server -> StockServer. - split off StockServer into own module. commit d0b3acad3e369a36eebdac29b1682a4b45be2baf Author: Frederik Heber Date: Fri Oct 21 18:02:54 2011 +0200 Added initial setting for creating client/server for automated fragment calculation. - we check for boost::asio in configure. - extra subdir src/Fragmentation/Automation to keep dependencies between new client/server architecture and rest of MoleCuilder as small as possible (especially compile-time wise). - small worker (hello world) program that is linked against boost::asio containing first example of asio tutorial (timer.1) to underline functionality. commit e44956108f0bb594c7954211e93c2d0afcd3d523 Author: Frederik Heber Date: Thu Apr 12 09:31:26 2012 +0200 Set version to 1.2.4 - Molecuilder library is now 8:0:1. - Codename "Mercedes" (the W124 series is one chassis used by Mercedes in its E-class cars) commit b2c30277e29ff71804fcb5db963189440f56db52 Author: Frederik Heber Date: Fri Mar 16 13:29:01 2012 +0100 DOCU: Extended documentation on how values from the user are eventually used by Actions. - updated ValueStorage docu. commit be21faee0c27bbf2439e848bacfe01d94e55d9e0 Author: Frederik Heber Date: Wed Apr 11 18:18:23 2012 +0200 Moved getParametersfromValueStorage() call from each single Action into base class Action::call(). commit 3e93332edcd1d53ed12f703581f513aa848ed653 Author: Frederik Heber Date: Fri Apr 6 14:51:10 2012 +0200 FIX: Corrected includes of GLWorldScene and GLWorldView. commit 53059ec2dd3238b5576917fc5f3b886c51b6c88d Merge: c0ed1e7 3927ef3 Author: Frederik Heber Date: Fri Apr 6 13:59:28 2012 +0200 Merge branch 'michi-track-molecules' into stable Conflicts: src/World.hpp - World had removed NotificationType MoleculeChange but added SelectionChanged. - FIX: World::AtomPositionChanged is no more, GLWorldView listens to AtomObserver instead. commit 3927ef32aa0c52dd73d5c9a4fe5eccea8715a379 Author: Michael Ankele Date: Wed Apr 4 16:00:53 2012 +0200 GL: molecule selection boxes - only instantiated for selected molecules - no size/position changes tracked yet! commit 1ce04ba25c600a48cbc8077e87d4f752d2bdb206 Author: Michael Ankele Date: Wed Apr 4 15:59:53 2012 +0200 TYPO in comment commit a3900675b96bc0f90f73a7fecc419561b8effaa9 Author: Michael Ankele Date: Mon Apr 2 14:11:44 2012 +0200 QtWorldView: only refill on repaint commit 25b3559dab530b85b3b7f9d2ae6e4fa721bc6c45 Author: Michael Ankele Date: Mon Apr 2 13:50:01 2012 +0200 QtElementList: only refill on repaint commit 225cf5bb2323a8449a33e059ca95fcbd61c610f5 Author: Michael Ankele Date: Mon Apr 2 12:57:45 2012 +0200 REFACTOR: GL: made drawSelectionBox its own function commit 3b229e53114d9aef7a92da804468aee8149f13a5 Author: Michael Ankele Date: Mon Apr 2 12:48:10 2012 +0200 GL: made hover/selection materials static - no more getMaterial(_evil_number_) workaround commit c6751895e249ac3b8b055b048e09886c9e6b6faf Author: Michael Ankele Date: Fri Mar 30 16:59:47 2012 +0200 GL: molecules show if they're selected (mostly dummy) - adden new GLMoleculeObject_molecule class (without mesh) - draws a cube if molecule is selected (does NOT use correct position/size yet!) commit 42c6a471ef0ffc7ff153901aa28b1d9be1a5076a Author: Michael Ankele Date: Fri Mar 30 15:46:59 2012 +0200 REFACTOR: removed duplicate variable in GLMoleculeObject (m_mesh, m_GLMoleculeObject) commit 5a2a0637855ca870075b64d371bf7a586b59f786 Author: Michael Ankele Date: Fri Mar 30 12:51:02 2012 +0200 GL: sending more signals to redraw - atoms send changed() to scene when element or position changed - atoms send selectionChanged() to scene when (un)selected - bonds send changed() to scene when an atom changes its position commit d539023abf66f2db5f41891aeba4d6e409d58146 Author: Michael Ankele Date: Fri Mar 30 12:35:47 2012 +0200 GL: atoms show if they're selected commit fbb1f1abc80189e7ebceb05b7baec9b319cf4db8 Author: Michael Ankele Date: Thu Mar 29 15:38:37 2012 +0200 GLMoleculeObject_bond: dynamic bond distance via matrices commit 343a4b93ad2b4402ac08f73a701b3a94f1f4b462 Author: Michael Ankele Date: Thu Mar 29 14:37:44 2012 +0200 GL: bond tracks its atoms' position changes commit 8a77aceca34c6bfc767e485022aadcae50a7ff12 Author: Michael Ankele Date: Thu Mar 29 13:35:47 2012 +0200 GL: track atoms changing position - handles World::AtomPositionChanged - selectionMaterial commit 69643ae5440d6dddbf875a782811ee16d2941d85 Author: Michael Ankele Date: Thu Mar 29 13:11:02 2012 +0200 World: made selection changes observable commit 6e6b9000d63e415dcd88d625a8bf097ce425b880 Author: Michael Ankele Date: Thu Mar 29 13:09:40 2012 +0200 VectorQtQuery: allowing negative values commit 85a23f9feaae1467065551b93789e2310a3b6504 Author: Michael Ankele Date: Tue Mar 20 14:24:49 2012 +0100 FIX: BoxQtQuery crashed (matrix initialized as 0) commit 85b1126c465b0555e3fcf90ff8032d9abb86d60f Author: Michael Ankele Date: Tue Mar 20 14:01:11 2012 +0100 made BooleanQtQuery a checkbox commit 51b5d11f6164373b94b7c426c6fc651ad5363705 Author: Michael Ankele Date: Tue Mar 20 13:41:00 2012 +0100 FIX: missing initializers for QtQueries commit 4ddcfb56748b600772484d5b11391fec57f3d210 Author: Michael Ankele Date: Thu Mar 15 14:09:56 2012 +0100 FIX: BooleanQtQuery: missing Layout creation before use commit a14fe398b40b1b536bb476011b0c210663749bae Author: Michael Ankele Date: Thu Mar 15 13:43:54 2012 +0100 VectorQtQuery implemented commit 1de61e16ec9243406aa643aaa7f68fa60662ed77 Author: Michael Ankele Date: Tue Mar 13 14:24:27 2012 +0100 QtElementList: selection calls actions commit b14efe1ed7af1abfc8af894dcaafd29b7d110a4a Author: Michael Ankele Date: Tue Mar 13 13:58:50 2012 +0100 QtWorldView: selection in widget calls actions commit 613f8ce92dbe7aa67f0bcf2b469dc117261e6701 Author: Michael Ankele Date: Thu Mar 22 13:30:17 2012 +0100 added a selection material to GLMoleculeObject (still unused) commit 818201ca31afd939c7344a175135fb8dc1f9665f Author: Michael Ankele Date: Thu Mar 22 13:29:22 2012 +0100 added a dirty flag to QtElementList (still unused) commit 79b59b34898604a6632f6ba8004edb82aa1e19ea Author: Michael Ankele Date: Thu Mar 22 13:27:01 2012 +0100 made QtWorldView a QTreeWidget commit 575343869aa527e7b87db59d4b3951735678ab11 Author: Michael Ankele Date: Thu Mar 22 13:22:08 2012 +0100 added OBSERVE to molecule::SetNameFromFilename commit 59a28ec90c4e8631aeaf66b49d200d2e6fc3e72e Author: Michael Ankele Date: Thu Mar 8 13:41:08 2012 +0100 QtElementList improved - occurrence added - connected to molecule observer commit f20fa5eaab631780e5e575ac7150352538ba9a14 Author: Michael Ankele Date: Thu Mar 8 11:08:44 2012 +0100 made QtElementList a QTreeWidget commit 0e61565a3b23140c13eb4888983a7b3b30175141 Author: Michael Ankele Date: Tue Mar 6 17:48:08 2012 +0100 new class: QtElementList commit 244f8167b657eafd126134f5ceff42b58c2c1b05 Author: Michael Ankele Date: Tue Mar 6 14:09:48 2012 +0100 QTabWidget for worldDisplay commit c0ed1e7cacf4dc5df9d33813e1fd71b00795c4d7 Author: Frederik Heber Date: Fri Apr 6 13:31:15 2012 +0200 FIX: WorldTime::setTime only gives update when given time step is different. - this [closes #183]. commit d0037049d1e673734b6a2457d940c4d0f7c587d2 Author: Frederik Heber Date: Fri Apr 6 13:03:57 2012 +0200 FIX: Box does not notify (though update) when set conditions or matrix is the same. - TESTFIX: BoxUnitTest adapted accordingly and added checks for no notify on these cases. commit 760c4c275e5610869534aa6ad1bb5c87db08d9ae Author: Frederik Heber Date: Fri Apr 6 12:39:22 2012 +0200 Cleaned observer structure in atom. - Added new channel BondsRemoved and used in bonds removal functions. - FIX: Removed PropertyChanged for setNr and alikes, Nr is molecule's responsibility. Made note of this in documentation. commit 6a3c838abc3c19ed587d178dee4f274fb26b6f8b Author: Frederik Heber Date: Fri Apr 6 11:57:43 2012 +0200 Cleaned observer structure in molecule. - FIX: Several OBSERVE were not needed, as update trigger was already contained in sub functions called in these routines. - Added NotificationType enumeration of channels: Atom insertion, atom removal, atom nr changes, and molecule name changes. - OBSERVE and NOTIFY used in the functions only where the direct change occurs. commit d25bec3da03f889ba40af0111cab8123b30a7b9b Author: Frederik Heber Date: Fri Apr 6 11:48:08 2012 +0200 Cleaned the structure of Observers, i.e. what they report. - The boundaries between who reports on what are somewhat unclear right now, this commits fixes it and installs clear responsibilities for each of the major observer entities. - DOCU: Added section on observer construct on who reports on what. - FIX: Removed AtomPositionChanged, AtomChanged, and MoleculeChanged (unused) channels in World. commit 006e1ed7d5cc4416cfbfad21491bcfc0fcdda3ce Author: Frederik Heber Date: Fri Apr 6 13:19:10 2012 +0200 FIX: ChangeTracker has not been observing AtomObserver so far. - This is introduced due to cleaning of observer structure. - FIX: Cleaned ChangeTracker declaration from false includes. - FIX: TextWindow.cpp lacked include World. - TESTFIX: All Parser...UnitTest needed to purge AtomObserver instance. commit 23fd4308ecfb01cade133b122c6e3e4b440e3141 Author: Frederik Heber Date: Fri Apr 6 12:09:07 2012 +0200 FIX: TremoloParser now contains usedFields_load and _save to allow for multiple loading. - refactored several functions out of ::save(). - parseAtomDataKeysLine() and isUsedField now require usedFields ref. - FIX: save() now erases duplicate entries still in usedFields. - removed setFieldsForSave(), was duplicate of setAtomData(). - new function makeUsedFieldsUnique() to preserver order of appearance in usedFields. - this [closes #141]. - FIX: made several function parameters constant that were not before. - FIX: Removed double readAtomDataLine(). commit 531f27764dc2eabbcb727eb49be1867ac1257e30 Author: Frederik Heber Date: Thu Apr 5 10:53:23 2012 +0200 Added SaveSelectedAtomsAsExtTypesAction that creates a tremolo-specific .exttypes file. - the functionality is implemented in TremoloParser. - it is required to perform a save on the atoms before such that ids are correct. - the actions tells whether ids are valid or not. - also added regression test Parser/Tremolo-Exttypes. commit 80ca2949199193b6a0fde7517836465c5a7a214a Author: Frederik Heber Date: Thu Apr 5 17:42:12 2012 +0200 Added regression test Filling/RegularGrid with and without a tesselated surface. - also repaired FillRegularGridAction such that do/undo/redo works. commit 72e4c95aeeec393ae183fcfb6ed2cebda6d50771 Author: Frederik Heber Date: Fri Apr 6 12:34:16 2012 +0200 tempcommit: regression tests Filling/SphericalSurface Undo/Redo were still marked XFAIL. Merge with ... commit af9be32aa2e588261aae3f3bcec741a12087b34c Author: Frederik Heber Date: Thu Apr 5 16:09:17 2012 +0200 Added BondInfo to store bond's state information for later re-instantiation. - also added StoreBondInformationFromAtoms() and AddBondsFromBondInfo() to UndoRedoHelpers. commit 06070b7a13e23eedd9701b62d229b17677769304 Author: Frederik Heber Date: Thu Apr 5 14:53:38 2012 +0200 AtomicInfo now also stores and restores the bond state information for the atom. commit cc9119798652998bbd0707a1ab96db1b98d7aa9d Author: Frederik Heber Date: Thu Apr 5 14:51:22 2012 +0200 Refactored BondedParticle::removeAllBonds() into variant with and without time step. commit 42b6de7c684d4c908777f116dccaf00a8e479cf2 Author: Frederik Heber Date: Thu Apr 5 11:38:33 2012 +0200 Filler::operator() has param vector of Cluster's that is filled with inserted ones to allow for undoing. - FillRegularGrid and FillSphericalSurface have undo and redo functionality based on the returned vector of Cluster's and UndoRedoHelpers. commit 57dd40cda8082273cb21c69bba6a7c8b5a561fca Author: Frederik Heber Date: Thu Apr 5 11:37:13 2012 +0200 Extracted removal and adding of atoms from AtomicInfo to UndoRedoHelpers module. - this way atoms can be quickly re-created, removed from AtomicInfo state information. - added ResetAtomPosition(). - RemoveAction makes use of this. commit 91be2dbe71d6dc407a0ef58370bc1566d7b01d91 Author: Frederik Heber Date: Thu Apr 5 11:53:46 2012 +0200 Added Undo/Redo check to regression test Filling/SphericalSurface. - both are maked as XFAIL right now. commit 4187a74c602e4565e9e0fb1929d48384d6792cc5 Author: Frederik Heber Date: Wed Apr 4 16:17:22 2012 +0200 Removed MoleculeAction/CreateMicelleAction, is replaced by FillAction/FillSphericalSurfaceAction. - TESTFIX: removed regression test Molecule/CreateMicelle. - TESTFIX: created Filling/SphericalSurface. commit cb76762d774e30e4704076d9c68d27765141559d Author: Frederik Heber Date: Wed Apr 4 13:16:14 2012 +0200 FillSphericalSurface now works on selected molecule and requires an alignment axis. - the axis is used to perform the rotation assuming the filler molecule is oriented on this direction. - also, it now uses CopyAtoms_withBonds. commit 93eae3672fe61ef67bd3ca7888779afb308aa2e0 Author: Frederik Heber Date: Wed Apr 4 13:12:18 2012 +0200 Added new Inserter working on surfaces of Sphere's. - We also align the given filler Cluster along the surface normal direction. - Note: Filler nodes may only reside on the Sphere's surface. commit 50c35d7a80a86a8cda3eba3bc522fa468ed79feb Author: Frederik Heber Date: Tue Apr 3 15:32:46 2012 +0200 Added Line::getRotationMatrix() and RealSpaceMatrix::setRotation(Vector,double). - setRotation() now allows to set a rotation matrix about an arbitrary axis. - Line::getRotationMatrix() just forwards to RealSpaceMatrix::setRotation() with its direction. - added (simple) unit test function for both. commit 2db05382555a391b8fe4741acd08266bfc330545 Author: Gregor Bollerhey Date: Thu Mar 29 19:18:16 2012 +0200 Added action to fill selected atoms on sphere surface. commit f4cfb689eb8b160e2dc0434074efead7fdc8c8e0 Author: Gregor Bollerhey Date: Thu Mar 29 19:16:24 2012 +0200 Mesh adaptor to reuse sphere-shape for new filler action. commit 4a4f3d8ce22775957b51c385fd5f8d8a6fb427cc Author: Frederik Heber Date: Thu Apr 5 11:54:12 2012 +0200 Added regression test Filling/RegularGrid with undo, redo. commit 6aad6f855826b41c7c32b3b3c9706d5adbcf9acd Author: Frederik Heber Date: Thu Apr 5 13:29:26 2012 +0200 FIX: molecule::containsAtom() is now const and has const param, added AtomIdSet::contains(). - AtomIdSet::contains() is predicate to whether id is contained, added unit test function. - also added molecule::containsAtom() on atomic id only. commit 57f7434125c2e5fda6c02a28c72e221dd66f64d9 Author: Frederik Heber Date: Wed Apr 4 15:56:54 2012 +0200 FIX: AtomIdDescriptor was not using internal_iterator but full ObservedIterator. - this causes messy update()-cascades because on destruction of the iterator during the find, which is e.g. used by AtomIdSet::const_iterator(!), an Observer signal was triggered. - NOTE: In Descriptors we may _always_ use internal iterators, as this never does any harm to the World with respect to insertion/removal of atoms or molecules. - this [closed #182]. commit b98a32c9973063fcbc69b436a08b1405b9df5ce1 Author: Frederik Heber Date: Tue Apr 3 16:31:03 2012 +0200 FIX: Some fixes to Resize_Impl functions. - replaced 1/ by 1./. - volume and surface area are size to the power of three and two, respectively. commit c4864173a791cccb5a29c6f251b4e9352b31020f Author: Frederik Heber Date: Tue Apr 3 16:29:31 2012 +0200 FIX: ShapeOps::getHomogenous...() were not working. - replaced for_each by transform (the latter actually replaces). - also by using ShapeOpsBase_Impl::translateOutPos() we can implement the getHomogeneous...() functions more generally inside ShapeOpsBase_Impl instead of specifically for each Shape operation. - added Implementation of getHomogenousPointsOnSurface unit test function. commit 5cdd83b4ee7182af3e7f1f1dc01d45d7e02916a2 Author: Frederik Heber Date: Thu Apr 5 11:38:02 2012 +0200 FIX: AtomicInfo.hpp lacked some inclusions, had only forward declarations. commit b3d687bc878019a08e899000aa1d38119f390058 Author: Frederik Heber Date: Thu Apr 5 10:14:13 2012 +0200 FIX: Filler::operator() did not create a molecule for each cloned cluster. - so far we assume (in AtomicInfo) that each atoms always belongs to a molecule. However, the CopyAtomsInterface copies without creating new molecules or associating copied ones with the old molecules. - AtomicInfo asserts that atom is associated to a molecule. - CopyAtoms_withBonds now associates cloned atoms with molecule of original atom. - Filler::operator() creates a molecule for each cloned cluster and associates all atoms in the cluster with it. - This [closes #180]. commit 2598874de68fdc051204a1835045f988d021c922 Author: Frederik Heber Date: Thu Apr 5 09:55:23 2012 +0200 FIX: XyzParser stumbled over empty comment line. - FormatParser< xyz >::load() used operator>> and ws but this skips over the newline characters if only whitespace follows. Now we use getline. - added regression test part on the issue to Parser/Xyz/...load-various. - This [closes #181]. commit 2034f3c5f9db8e8024a0f4db0cd3d1231e98ac24 Author: Frederik Heber Date: Tue Mar 27 14:37:05 2012 +0200 Added AtomInfo::charge along with getter and setter. - charge is used by both TremoloParser and XmlParser, hence needs to be exchanged. - Added charge to state info in AtomicInfo. - TESTFIX: regression tests Molecules/Copy, Molecules/CreateMicelle, and Filling/FillVoidWithMolecule's tensid.data file had to be changed due to present Charge info with precision different to the one arising from new AtomInfo::Charge. - removed ParserXmlUnitTest from XFAIL_TESTS. commit 3d0892b89b1f6f981cce9898d7abd17bfafd158f Author: Frederik Heber Date: Mon Mar 26 11:59:32 2012 +0200 Added an additionalAtomInfo container to XmlParser. - this stores the parser-specific information such as charge, ... commit d2596bcb8a99e3a32ebcb51e123bd7fed8235a16 Author: Frederik Heber Date: Sat Mar 24 17:39:43 2012 +0100 Added XmlParser for parsing configurations for ScaFaCoS generic test code. - XML is parsed via pugixml which is placed in subfolder pugixml in src/Parser. - NOTE: pugixml does not import/export double with high enough precision. Hence, we always obtain strings and convert them ourselves. - also added unit test on the new parser. - NOTE: Unit test is failing as charges are not yet written correctly, hence marked as XFAIL. commit 613da6b478df78ec98ab183a9a9bd735adf14586 Author: Frederik Heber Date: Sat Mar 24 17:39:04 2012 +0100 Added check for boost::property_tree to boost.m4. commit ed26ae0a32a705778541a63922f7ba79f0840079 Author: Frederik Heber Date: Mon Mar 26 10:06:19 2012 +0200 Renamed calls to element::getNumber() -> ::getAtomicNumber(). - dropped element::getNumber() as getAtomicNumber has same functionality. commit 47ed3dbe85194f82787c9dcd9efa83fae922b213 Author: Frederik Heber Date: Mon Mar 26 09:48:22 2012 +0200 Removed some old output functions in element, Formula, and molecule. - This is preparatory for refactoring element into a more general concept that can contain both chemical and derived elements suitable for empirical potential parametrization storage. - Removed functions in element: Output(), Checkout(). - Removed function Formula::checkOut(). - Removed function molecule::Checkout(). - functionality added to periodentafel::OutputElement(). commit 03a58974943974bda29e50e38854002e694c2f07 Author: Frederik Heber Date: Mon Mar 26 09:44:19 2012 +0200 Removed lots of remnant output functions in atom and molecule that are not used anymore. - Removed functions in atom: OutputMPQCLine(), OutputPsi3Line(), OutputXYZLine(), OutputTrajectories(), OutputTrajectoryXYZ() - functionality of outputters has been shifted to Psi3Parser and MPQCParser. - Removed functions in molecule: OutputTrajectories(), OutputTrajectoriesXYZ(), OutputXYZ() - Removed in CounBondsUnitTest: OutputTestMolecule(). commit ce7bfd57176b8ad23e9bfcc393a41c4798df77ed Author: Frederik Heber Date: Tue Mar 13 20:35:15 2012 +0100 VERBOSE: Subsequent change in verbosity levels of many tesselation functions after Info removal. commit 2a3124b519027c588e363ec4c5a44171b4715777 Author: Frederik Heber Date: Tue Mar 13 18:35:01 2012 +0100 VERBOSE: Removed lots of Info objects in tesselation classes member functions. commit e791dcfb33d9e278cc697cebebb3ec5731abcfe9 Author: Frederik Heber Date: Tue Mar 13 18:52:00 2012 +0100 Removed molecule::doCountAtom() and added molecule::doCountNoNonHydrogen(). - since the conversion of molecule to being a container for a set of atomicId_t counting atoms is just an unnecessary O(N^2), since we count through all of them. With atomIds.size() however the number of atoms is always known. - Hence, moleucle::AtomCount is no longer a Cacheable, but NoNoHydrogen is now such a one. LazyEvaluation is only sensible when the evaluations are few. Due to updates from the GUI however, atomcount is constantly requested. - FIX: removed doCountAtom() calls in some functions in analysis_correlation. commit 1089686f4e347a12c5cb5f631aeaa4c165a9f3c0 Author: Frederik Heber Date: Tue Mar 13 18:37:53 2012 +0100 FIX: Rewrite of BondGraph's CreateAdjacency() and getMaxPossibleBondDistance(). - getMaxPossibleBondDistance() is not templated anymore but expects simply a set of atomicNumber_t. - new helper function BondGraph::getElementSetFromNumbers() which converts a set of atomicNumber_t into a set of elements. - createAdjacency now prepares initially the set of atomicNumber_t and from it the set of elements such that no further element lookups are necessary except once for each atom's element. commit 08a0f52718bbbbe42fd8618c1e90effd0fc6eabb Author: Frederik Heber Date: Tue Mar 13 18:36:46 2012 +0100 AtomInfo has new functions getElement() and getElementNo(). - getElement() shall replace getType() which still returns a pointer instead of a reference, is marked as deprecated. - getElementNo() is a faster way if only the atomicNumber_t of the atom is desired as no lookup in the World is necessary. commit ccb487ddab59ad8050ce40929874510f2d9454f0 Author: Frederik Heber Date: Thu Mar 15 18:29:54 2012 +0100 TremoloParser now always writes current domain as "# Box ..." into file. - This is important, as format tremolo is essentially also a domain preserving type (i.e. tremolo reads Box from .data file). - TESTFIX: The following regression tests have a "' Box ..." line added to their .data files: Domain/RepeatBox, Filling/FillVoidWithMolecule, Molecules/Copy, Molecules/CreateMicelle, Parser/Tremolo-SetAtomdata. - FIX: Forgot to add testsuite-fill-void-with-tenside-molecule.at to Makefile.am commit a275b3f9d246781dcbb1eae64f444246f68aad00 Author: Frederik Heber Date: Mon Mar 12 16:11:36 2012 +0100 TremoloParser uses ElementKeys. - functions parseKnownTypes() and createKnownTypesByIdentity() relay to respective functions in ElementKeys. - TremoloParser::readAtomDataLine() catches IllegalParserKeyException to inform the user of .data with insufficient .potential knowledge. commit d9005c16a207bbd7364238aaf6dfaa1afe18b7cb Author: Frederik Heber Date: Mon Mar 12 16:08:21 2012 +0100 Extracted TremoloParser::knownTypes into distinct class ElementKeys, and added ParserExceptions. - added Exceptions.hpp to folder Parser with currently only exception IllegalParserKeyException. - ElementKeys contains map that parses contents from file and may set identity mapping based on periodentafel's elements. - getter and setter throw IllegalParserKeyException. commit ebc499bb1355679f4fc65d57497f95261d93f328 Author: Frederik Heber Date: Mon Mar 12 18:02:52 2012 +0100 Added InvertMoleculesAction and InvertAtomsAction. - World has two new functions invertAtomSelection() and ..MoleculeSelection(). - these actions are needed to get some of the boolean operations working that are possible inside the code but not outside. Concatenated selections are on the command-line always combined as OR and never as AND, via an invertion operation, we may combine these into an effective AND combination. - also added regression tests Selection/Atoms/InvertAtoms and Selection/ Molecules/InvertMolecules. commit 61c364e5234bfac462d451e14f2d8a128787f6bb Author: Frederik Heber Date: Fri Mar 23 09:40:39 2012 +0100 Added AtomOrderDescription along with SelectionAtomByOrder. - added unit test function AtomOrderTest on new descriptor. - added regression tests Selection/Atoms/AtomByOrder. - TESTFIX: Enhanced moltest.py and moltest_check.py by catching ValueError, when lines in options.dat are faulty. commit 8de597c3fb205163fbb84791b76d54a43062db72 Author: Frederik Heber Date: Thu Mar 1 14:56:51 2012 +0100 FIX: FileQtQueryPipe demanded QFileDialog::ExistingFile. - for InputAction also non-existing files are allowed. commit 2935fddcbade4d132f34943ad80b643b77283a4b Author: Frederik Heber Date: Mon Apr 2 13:09:47 2012 +0200 Set version to 1.2.3 - Molecuilder library is now 8:0:0. - Codename "Serpens Cauda" (yellow dwarf star system 123 light years away, containing HD 168443b/c, two extrasolar planets). commit 510f8114d39633be815ec5bf2eb8bf42f5b30f6a Merge: 0f44e1b 22425a9 Author: Frederik Heber Date: Mon Apr 2 12:35:51 2012 +0200 Merge branch 'Fix_Tesselation_InsideOutSideUnitTest' into Candidate_v123 commit 22425a9c1deaa6c8fe8844c40fe08d87a46164b9 Author: Frederik Heber Date: Mon Apr 2 12:34:03 2012 +0200 DISTFIX: Tesselation_InsideOutsideUnitTest still wrote temporary file. commit 0f44e1b5c2cc3d04152871c13aae2b663dd50a45 Author: Frederik Heber Date: Mon Apr 2 10:34:35 2012 +0200 Added CodeCheck on header files forgotten to put into a Makefile.am commit 7256a22b879c94a26db88606e94c6dd807033fd5 Author: Frederik Heber Date: Mon Apr 2 10:18:10 2012 +0200 DISTFIX: Forgot to include various header files in Makefile.am's. - Shapes/ShapeType.hpp was missing in Makefile.am. - Forgot to add Filling/ClusterInterface.hpp to Makefile.am. - src/LinkedCel/LinkedCell_Model_inline.hpp was not present in Makefile.am. commit 896f4a7ada6369e3572c881c6619a64461c0de07 Author: Frederik Heber Date: Thu Mar 29 10:21:47 2012 +0200 FillRegularGridAction now uses RandomInserter to fill in the clusters. - FillRegularGridAction has three new parameters taken over from FillVoidWithMoleculeAction. commit 48ab414c9528b756853528365f66102bc5b91219 Author: Frederik Heber Date: Thu Mar 29 10:21:35 2012 +0200 Implemented working RandomInserter. - we copy&paste most of the routines from boundary.cpp use in the filler functions there. This is to eventually remove these from boundary.cpp. commit 4fbc4eb3e954566cda24e1994d562cd588d3d6df Author: Frederik Heber Date: Wed Mar 21 11:13:39 2012 +0100 FIX: Filler::operator() now shifts filler cluster out of domain before evaluating predicates. - Note, we only move the atoms outside, not the shape. commit e32fa633df40b948e4d2e8a829385c51a6f7d34c Author: Frederik Heber Date: Tue Mar 27 15:53:10 2012 +0200 Modified Filler:operator() such that Inserters only modify position, not clone. commit 68abe5f58a8e654ce9fa978466f421b7b52a0fa0 Author: Frederik Heber Date: Tue Feb 21 15:27:21 2012 +0100 Made Inserter::operator(), Filler::operator() return bool, used by FillRegularGridAction. - true if at least one node is filled. - this is preparatory for allowing Inserter to insert and not clone only. commit f61f610060cf4f27c505a50acd437f8a6b56abf8 Author: Frederik Heber Date: Tue Feb 21 14:55:58 2012 +0100 Refactored implementation of Inserter into pimpl pattern. - this is then much more similar to Predicate. commit 901d8728439c01d409375e1e3f5d042c4d2d7bb6 Author: Frederik Heber Date: Tue Feb 21 14:27:44 2012 +0100 Refactored insertion of cluster into Inserter class. - this is to allow for random variations and alike with arbitrary inserters. - Filler now requires an Inserter in cstor which is used when placing a cluster at a specific node. - the Inserter::operator() uses CopyAtomsInterface to pass on to Cluster::clone(). - FillRegularGridAction uses SimpleInserter now. - TESTFIX: FillerUnitTest uses SimpleInserter, too, now. commit dba7b09bd997e1ce6c6342031daa75dfc481bfc0 Author: Frederik Heber Date: Wed Mar 21 11:20:18 2012 +0100 Extended filling documentation for Inserter. commit da1e9282f7aecf587880d71ca5531b04c643fa70 Author: Frederik Heber Date: Mon Jan 30 12:06:59 2012 +0100 Shape::getVolume() and ::getSurfaceArea() use Approximators if implementation returns -1. - We use the approximators via tesselation for surface area and via a stupid Monte Carlo integration for the volume. - implemented stubs to use with Shape unit tests. commit 4c6e70b2ccc22ff8e07d3429981f902de285f40e Author: Frederik Heber Date: Mon Jan 30 12:05:27 2012 +0100 Added functors for calculating surface area and volume of a Shape. - These are implemented as functors to avoid that Shape and especially its library become dependent on Tesselation and other libraries. - Added heuristic for point density to ApproximateShapeArea. - ApproximateShapeVolume uses RealSpaceMatrix directly and does not Box::translateIn(). commit 595cfd9cce8dca421ed34314c2b4e9cb33b6d8ef Author: Frederik Heber Date: Thu Jan 19 16:40:33 2012 +0100 Added NodeGenerator. commit c67c65d4e13897fc13b0c5ff2c63be4e582854c9 Author: Frederik Heber Date: Mon Jan 30 09:18:04 2012 +0100 Added preliminary getVolume() and getSurfaceArea() implementation to all Shapes. - only BaseShapes are truely usable, the rest is mostly marked as TODO. - the problem is that intersections are not so easy to handle. Probably, we have to use polygonal intersections there and approximate volume calculations. - the functions return -1 when not implemented yet. this is preparatory to start approximate calculations at the top node of the Shape "graph" if -1. is returned from the implementation. commit 7672551588bebb7aede173ab33a7c92d8ee6bed7 Author: Frederik Heber Date: Mon Jan 30 09:14:10 2012 +0100 Split off class definition of LinePoint from module Line.cpp - added documentation section on the lines. - some changes due to new include LinePoint.hpp. commit e9ad4343d882a9eb00d1566d22d9d03580a62a77 Author: Frederik Heber Date: Wed Mar 21 11:36:49 2012 +0100 FillRegularGridAction now expects the filler as selected molecule, all selected atoms are tesselated. commit 345eda8ba424c9dbb13488e397cd25c45027d9bc Author: Frederik Heber Date: Tue Mar 6 16:20:13 2012 +0100 Enhanced FillRegularGridAction to avoid tesselated surfaces. - selected molecules (if any) are now tesselated ans !IsInsideSurface is used to only fill outside. commit 5a4cbcba2db951efef5711b10c3f27755464e607 Author: Frederik Heber Date: Thu Mar 1 17:40:31 2012 +0100 VERBOSITY: Increased verbosity threshold of some outputs connected to FillRegularGridAction. commit a884522bcc22ba620339ea5c6358f0408ce9007d Author: Frederik Heber Date: Fri Jan 20 02:29:57 2012 +0100 Added new Action subfolder, menu, and CommandLine options map, and FillRegularGrid Action in it. - counts, offset and min-distance as parameters that determine the filling. - we find bounding sphere for the selected set of atoms. - CopyAtoms_withBonds is used in cloning the cluster. - libMolecuilderFilling added to libMolecuilderUI. commit d505a3699ad22730219478f69fe1a8ad8b608c2f Author: Frederik Heber Date: Thu Jan 19 16:40:18 2012 +0100 Added Filler as general method of filling a Shape. - Filler::operator()() requires CopyAtomsInterface ref as param. - added unit test that creates cluster of two atoms and fills a row of nodes. commit 5d81e514140621e03b61d2bd770397f6d45321d3 Author: Frederik Heber Date: Fri Jan 20 02:33:40 2012 +0100 Added CubeMesh derived from Mesh. - contains a count and a offset Vector, along with a transformation matrix: - the transformation is to scale the internal cube. - counts is the axis partitioning, offset changes between 0 and 0.5 and 0.5 and 1 in a partitioning of 2. commit dd3f4f0b89cda87be8279908c39849664ab7067a Author: Frederik Heber Date: Thu Jan 19 18:02:02 2012 +0100 Added class Mesh for containing a set of Shape-filling Vectors. commit 8f6e2a881f918244cc0e6fc08507dc72a81dcf74 Author: Frederik Heber Date: Tue Jan 17 22:06:35 2012 +0100 Added new class Cluster as atomIdset with a Shape. - inherits ClusterInterface. - its clone() requires CopyAtomsInterface ref. - implements getShape(), transform(), and translate(). - added unit test. commit 9e5a306c82483ea0f88a098c86376beb12c62ffe Author: Frederik Heber Date: Wed Mar 28 10:59:32 2012 +0200 Added ClusterInterface. - this is preparatory for using a Cluster as possible atom sets. - ClusterInterface has getShape(), transform(), and translate(), also its clone() requires CopyAtomsInterface. commit 7adddc77959cfcd6ae003aa73f30942d2e1c3c35 Author: Frederik Heber Date: Thu Jan 19 16:41:30 2012 +0100 Added IsInsideSurface_FillPredicate - added unit test. commit 83fd7d028ca39a4cd002c097850aa966f267121e Author: Frederik Heber Date: Thu Jan 19 16:43:13 2012 +0100 Added Ops_FillPredicate. - added unit test. commit baac793b97fbf4371eca521187baa79207499a83 Author: Frederik Heber Date: Thu Jan 19 16:41:45 2012 +0100 Added IsVoidNode_FillPredicate. - added unit test. - added documentation and verbosity to IsVoidNode() and IsVoidNode_FillPredicate(). - creates a LinkedCell_view that is copied when bound to IsVoidNode(). commit 6499b1ee9307f8ecc39caafba8f8083e036a4bd0 Author: Frederik Heber Date: Thu Jan 19 16:46:41 2012 +0100 Added IsInsideDomain_FillPredicate. - added unit test. commit 600a5296c7fb2bdb5ffe9f184edc5632d2acb442 Author: Frederik Heber Date: Thu Jan 19 17:27:42 2012 +0100 Added IsInDomain_FillPredicate. - added unit test. commit b00ab1b88d1ad76942e82e3eece9355ea217a2d7 Author: Frederik Heber Date: Thu Jan 19 16:16:09 2012 +0100 AnyFillPredicate takes a specific boost::function as predicate. - this will allow us to pass on specific boolean function that are used via boost::bind to serve as predicates, embodied in this class. commit 9c2cb38007f3f87ae0e49da9d30c337eac0660af Author: Frederik Heber Date: Thu Jan 19 16:40:58 2012 +0100 FillPredicate is working base class, where FillPredicateBase.hpp is the underlying interface. - FillPredicate is alike to Shape in design, containing a implementation pointer which has all the functionality and we just point to it. commit 0d57cbe09325913fcef9dcef6d7f542ede6e61b5 Author: Frederik Heber Date: Wed Jan 18 01:21:07 2012 +0100 Added Node and NodeSet for a position and a vector of Positions. commit b380ed238b7e9f275cf94f77da35860808083f3b Author: Frederik Heber Date: Tue Jan 17 15:57:37 2012 +0100 DOCU: Added concept for new construct Filling. commit 9e1d01415f93be121370a5079d969cb2451872f0 Author: Frederik Heber Date: Wed Mar 21 10:34:00 2012 +0100 Added CopyAtoms structure. - this creates a copy of a vector of atoms with as much depth as desired by the user. - this is a hierarchy of functors that each add additional functionality such as also re-creating the bonds, ... commit c67ff9c421296109fd402e1c2e1890d090d2777f Author: Frederik Heber Date: Wed Mar 21 12:56:06 2012 +0100 Added molecule::getBoundingShape() and unit test MoleculeUnitTest on it. - We now simply have a function to get a sphere as a suitable bounding shape which allows easy construction of a new cluster. commit 8e1f9015fa26331d074f80396b4d0f473847dc93 Author: Frederik Heber Date: Wed Mar 21 12:41:02 2012 +0100 molecule uses AtomIdSet now, rename getAtoms -> getAtomIds(). - molecule now relies on AtomIdSet functions, only insert() and erase() have own functionality to set the molecule internal id and the atom name. - FIX: removed MoleculeDescriptor include, added to Fragmentation and DepthFirstSearchAnalysis. commit 5e65342e2c81c65880890589b38aca41fb13097c Author: Frederik Heber Date: Tue Feb 21 16:45:02 2012 +0100 Refactored transform_iterator out of class molecule as AtomIdSet. - also added unit test. commit d927abb3d77a2859e44f0802e7b32cf4c5385ec6 Author: Frederik Heber Date: Thu Mar 22 18:39:02 2012 +0100 Renamed AtomByShape -> AtomsByShape and speedup due to LinkedCell usage. - since each Shape implements Shape::getRadius() and ::getCenter(), we may use the LinkedCell construct to obtain a smaller neighborhood faster. commit 3e1b7b6bbc335f8797e72e3edc99ef7639f3b319 Author: Frederik Heber Date: Tue Mar 27 15:27:22 2012 +0200 Added regression test on select-atoms-inside-sphere with a small radius. - this is to test a subsequent implementation using LinkedCell and whther it is faster. commit 5a8d6181d9ecac92ad0fd935c5788630721f55b0 Author: Frederik Heber Date: Thu Jan 19 01:55:04 2012 +0100 Added new function to all Shape: getHomogeneousPointsInVolume(). - basically it is not implemented except for ShapeOps, yet. - there is an initial unit test Shape_HomogeneousPointsUnitTest. commit 6acc2f3a1b46ec7dee426fa502fd350592a2d3b5 Author: Frederik Heber Date: Wed Jan 18 21:17:24 2012 +0100 Added getCenter() and getRadius to all Shapes. - also extended unit test. - Added test functions to ShapeOpsUnitTest. commit 84721b64723f4546ae9f3f1785703ef9fc47d7ed Author: Frederik Heber Date: Wed Jan 18 21:47:29 2012 +0100 Added new unit test ShapeOpsUnitTest, testing all ShapeOps. - BUGFIX: Stretch_impl() cstor had 1/... not 1./... for reciFactors. commit 571d048445007f27e1ef0c620af6a034eacacef7 Author: Frederik Heber Date: Wed Jan 18 21:25:30 2012 +0100 Renamed ShapeUnitTest -> BaseShapesUnitTest. commit 735940a1f921b67951e76dc118fcdac077fea6ab Author: Frederik Heber Date: Wed Jan 18 21:15:48 2012 +0100 FIX: Made practically all Shape... member functions const. - Shape: isInside(), isOnSurface(), getNormal(), getLineIntersections() - ShapeOps: translateIn(), translateOut(), translateOutNormal(), isInside(). commit b92e4abd2c9d2269cf58be33cf7cd809f3e304bd Author: Frederik Heber Date: Wed Jan 18 01:21:51 2012 +0100 Shape identify themselves via an enumerated Type. - this is required lateron for preparing Mesh class out of a given Shape. commit 6a7fcbb3e0bb0faf7b7f53598e63aac469a4434d Author: Frederik Heber Date: Thu Mar 15 14:16:21 2012 +0100 FIX: Rewrote BoundaryTriangleSet::GetClosestPointInsideTriangle(). - was broken before, see failing unit test, as it returned points not inside the triangle (however on the plane). Now, we rely on getClosestPoint of Space and derived classes. - TESTFIX: Removed Tesselation_BoundaryTriangleUnitTest from XFAIL. commit c27ce78e851407f0f868250263487f54ca132cde Author: Frederik Heber Date: Thu Mar 15 14:10:31 2012 +0100 BUG: Added another specific case to Tesselation_BoundaryTriangleUnitTest. - test case is again from larger filling example. - Note that this fails with current implementation of ::GetClosestPointInsideTriangle(). - TESTFIX: Marked test as XFAIL. commit 6dc3fe8a7a2543b61c47087c39d807556f435119 Author: Frederik Heber Date: Wed Mar 14 21:36:47 2012 +0100 Enhanced Tesselation_BoundaryTriangleUnitTest by check on ::GetClosestPointInsideTriangle(). - checking on rotated triangle as well. commit 70a0bab4c416abe9213d25fb8105b8fec94a70e9 Author: Frederik Heber Date: Thu Mar 15 14:50:00 2012 +0100 FIX: LINALG_MYEPSILON is too high for certain tesselation operations such as in triangleinsectionlist. - LINALG_MYEPSILON ist now numeric_limits*1.e+4. - TESTFIX: This fixes failing test in Tesselation_BoundaryTriangleUnitTest. commit 03a713a76a3c824e6837e1d3899ef50841b38fbe Author: Frederik Heber Date: Thu Mar 15 14:49:06 2012 +0100 BUG: Added failing test case to Tesselation_BoundaryTriangleUnitTest. - test case is from larger filling example. commit 471dece7cc1b45cf20a25bfe33c2a44ddf8b481f Author: Frederik Heber Date: Wed Mar 14 21:22:42 2012 +0100 Added BoundaryTriangleSet::IsInsideTriangle(). - this is preparatory for finding a bug in GetClosestPointInsideTriangle(). - refactored in-test triangle creation into distinct function. - added extensive unit test on this function. commit 368207d37f01a6b6632259661bf2b1af61b2c0e5 Author: Frederik Heber Date: Wed Mar 14 18:53:59 2012 +0100 FIX: Incorporated special case affecting TriangleIntersectionList::IsInside(). - If the closest points happens to be a TesselPoint of the boundary, all of its triangle's SKPs with the intersection-point vector have to be checked. As the point is only inside, if all of them are negative. - TriangleIntersectionList DistannceList is now a multimap, to allow for multiple triangles at the same distance. - Now TriangleIntersectionList::GetIteratortoSmallestDistance() goes through all entries at the same smallest distance and returns the first whose SKP is positive, otherwise the first. - TESTFIX: This fixes failing Tesselation_InsideOutsideUnitTest, hence removed it from XFAIL_TESTs. commit 53bc04e0e0eb7869d30d001ac78ff41913c780fc Author: Frederik Heber Date: Wed Mar 14 15:16:40 2012 +0100 BUG: Added spherical and non-convex test cases to Tesselation_InsideOutsideUnitTest. - we now test not only on cube, but also on sphere and a non-convex shape. - creation is generalized to allow for different shapes, also we use extension of VectorSet to allow for transformations. - TESTFIX: Added Tesselation_InOutsideUnitTestto XFAILs. Merge with enhancement of the test. commit f6ad4dcceb2ec138a73ad4dea9d2a998a5e21a06 Author: Frederik Heber Date: Wed Mar 14 17:14:03 2012 +0100 Added copy cstor from Set to VectorSet and VectorSet::transform(). - VectorSet::transform() required that Vector.hpp did not contain using namespace anymore. - Copy cstor allows to create from e.g. a std::vector a VectorSet and then use the functions contained. - added unit tests on both. commit 418b5e0fc8fe4887a7a0b6cf5a74cd0a7c5e80d7 Author: Frederik Heber Date: Wed Mar 14 17:18:30 2012 +0100 Added verbosity to some tesselation functions. - added exception catch to Tesselation::FindStartingTriangle(). - also added verbosity to TriangleIntersectionList::IsInside(). commit cc21cdf3ae7333553452e11b90d3c2b214c166ea Author: Frederik Heber Date: Mon Jan 30 12:09:06 2012 +0100 Added Tesselation::operator() that performs a tesselation on a given IPointCloud. - also changed unit tests TesselationUnitTest and Tesselation_InsideOutSideUnitTest to use the new function in setUp(). commit bdf6c8a7439f52e0c190c2ba42725d8be969436a Author: Frederik Heber Date: Mon Jan 30 12:08:46 2012 +0100 Added getter for surface area to class Tesselation. commit ee0032c6a09dfcf7548908b02426be6ecf812b72 Author: Frederik Heber Date: Mon Jan 30 10:33:06 2012 +0100 Extracted VolumeOfConvexEnvelope() from boundary and placed into class Tesselation. - parameter config replaced by boolean IsAngstroem. commit 64b197aba26bbb0356392272af6cee97e1086726 Author: Frederik Heber Date: Mon Jan 30 10:28:21 2012 +0100 Added getArea() function to BoundaryTriangleSet. - this is taken from boundary.cpp's VolumeOfConvexEnvelope(). commit 12c4cb0ce0eba7e7215be478cf3ddd00eae6f263 Author: Frederik Heber Date: Thu Mar 22 18:37:28 2012 +0100 FIX: MoleculeOrderDescriptor was not working correctly. - added MoleculeOrderTest and MoleculeNameTest to MoleculeDescriptorUnitTest. commit 4824045e8862d592732cdd29e95d5a0630c1e4b9 Author: Frederik Heber Date: Thu Mar 22 18:37:03 2012 +0100 FIX: forward declaration of World is unnecessary in AtomDescriptor. commit 05a8856950a70f7c6632778b990c57698560ee72 Author: Frederik Heber Date: Wed Mar 21 10:31:25 2012 +0100 FIX: BondedParticle::addBond returns * const not const *. - return a non-const ref such that we may modify it but prevent the use from deleting the instance. commit 46c832a58fdb69c0a30cc872cc301d1fb049c935 Author: Frederik Heber Date: Wed Mar 21 10:28:51 2012 +0100 FIX: PairCorrelation calculated max_distance in Box wrongly. - mistook Minv for M in AnalysisPairCorrelationAction::performCall(). commit 4d2b33da0f46516edd4b645ae0897eeb664c36fe Author: Frederik Heber Date: Mon Mar 19 17:42:39 2012 +0100 FIX: molecule does not need a periodentafel. - removed periodentafel param from cstor. - removed member variable elemente - removed AddXyzFile which was sole user of elemente. - removed depending functions in MoleculeListClass which were all remnants from old menu interface. commit 955b91eef584d31f8d9958b67d1ea39b84eb1fb7 Author: Frederik Heber Date: Wed Mar 14 19:08:24 2012 +0100 FIX: Removed using namespace std in Vector.hpp. - this caused some follow-up problems in other LinearAlgebra modules, mostly stuff from iostream not having std:: prefix then. - this also caused more of them in MoleCuilder modules, mostly due to string, stringstream, and numeric_limits with std:: prefix. commit 912c40f894bf2d9d9a56e65c27810c7464564255 Author: Frederik Heber Date: Thu Mar 15 18:00:53 2012 +0100 FIX: AddEmptyBoundaryAction just returns Action::failure if there are no atoms. commit b49de6734c55dcbdb4d72bbde0e06445e8b5b0cc Author: Frederik Heber Date: Tue Mar 13 18:33:20 2012 +0100 FIX: DepthFirstSearchAction still expected parameter for maximum neighbor search distance. commit ea0c8b2d99a7cd34a14e10739d5e97ad769403ed Author: Frederik Heber Date: Mon Feb 6 17:15:27 2012 +0100 FIX: ParticleInfo did use ptr instead of const ref in copy cstor. - is only used for atom's copy cstor. commit c742fed20df187f0ba5075443daf8db02480de2c Author: Frederik Heber Date: Mon Feb 6 17:12:03 2012 +0100 FIX: atom's copy cstor does not use Observer mechanism on the newly created. - we used setType() and setFixedIon() instead of AtomInfo copy cstor. commit fb4086c66a92259dff57dce2194b352aef6d0b4f Author: Frederik Heber Date: Tue Feb 21 20:01:42 2012 +0100 Set version to 1.2.2 - Molecuilder library is now 7:0:1. - Codename "Hadrian's Wall" (Erection began in 122 AD). commit a292f69b449c6c5bb67ebe28b692aa692bf02458 Author: Frederik Heber Date: Tue Feb 21 20:19:30 2012 +0100 DISTCHECKFIX: Forgot to add IdPool_policy.hpp to Makefile.am. commit e674c96fcf5679a4296d28d3c68f14356581b782 Author: Frederik Heber Date: Tue Feb 21 11:23:05 2012 +0100 FIX: Copy&paste error in tests/CodeChecks memdebug for variable ok. - we had all the files from MoleCuilder in here, which are not needed. commit a965b256ab0caa17547ae518bcde87e673b9c103 Author: Frederik Heber Date: Tue Feb 21 11:21:29 2012 +0100 Added check on present copyright disclaimer to LinearAlgebra as well. - fixed missing disclaimers in BoxVector.cpp, LineSegment.cpp, LineSegmentSet.cpp, and MatrixContent.cpp. commit 6d608dd5c311453412d113310ff79086151fd29b Author: Frederik Heber Date: Tue Feb 21 11:11:49 2012 +0100 COPYRIGHT: Updated all LinearAlgebra files to have copyright till 2012. commit 7e3065a1f91331217ec68bfc0a269a60c938a261 Author: Frederik Heber Date: Mon Jan 30 09:15:07 2012 +0100 FIX: Updated copyright in mainpage documentation of LinearAlgebra. commit 2a0271161126f3b47c3cd19c934d5f9e68593ecf Author: Frederik Heber Date: Wed Jan 18 19:13:52 2012 +0100 New function Box::isValid() to be discerned from ::isInside(). - isValid checks with and isInside without boundary conditions. - added Box::isValid() check to LinkedCell_Model::getIndexToVector(). - TESTFIX: regression test Atoms/Add needed Ignore BCs. commit c96423eec2163f37cc351c88bfd115e0a0446366 Author: Frederik Heber Date: Mon Jan 30 09:21:23 2012 +0100 BUGFIX: LinkedCell_Model should use ceil, not floor for calculating array size. - we stumbled over it because floor(20./2.) = 9 where it should come out as 10. - along the way: Converted some ASSERTs in LinkedCell_ModelUnitTest to ASSERT_EQUALs. commit b49c5dc478bfe5d7475926f8bad84675ae3cf64b Author: Frederik Heber Date: Fri Jan 13 13:40:06 2012 +0100 Regression test Analysis/PairCorrelation sets BC explicitly to Wrap. - also added check whether the bins have the right number of values. - Note: we checked that old PairCorrelation test was based on periodic BCs as well: H8 - O73 are 9.963629 apart, under Ignore BCs correct would be 10.07144. This is due to a wrap around on the z axis, 5.292 to 15.346. commit c1a9d605954042d9c86d2369f412f1ba332fb3f8 Author: Frederik Heber Date: Fri Jan 13 13:39:04 2012 +0100 Rewrote PairCorrelation() to make use of new LinkedCell construct. - removed PeriodicPairCorrelation() as this case is now contained. - TESTFIX: Modified regression test Analysis/PairCorrelation-RangeTest because with new LinkedCell the given range can now actually be heeded. commit 8fc1a63df8815c14148badf93b4c8d6674909443 Author: Frederik Heber Date: Mon Feb 6 18:49:07 2012 +0100 FIX: getDipole() was broken under periodic boundary conditions. - getDipole() now uses Box::periodicDistanceVector() to get the distance vector corrected for periodic boundary conditions. commit a19b4f9e6ce8ff976b11d2cdf26e72073492ef5c Author: Frederik Heber Date: Mon Jan 9 19:14:30 2012 +0100 Removed parameter periodic from DipoleAngularCorrelationAction. - is obsolete as handled directly through Box' boundary conditions. commit a8ae6d754f74e46c5174e011c8f6af0cfe94f719 Author: Frederik Heber Date: Mon Jan 9 18:49:21 2012 +0100 TESTFIX: Separated regression test Analysis/DipoleAngularCorrelation. - now parts explicitly tests whether periodic boundaries are working correctly while the other has molecules entirely within its domain and boundary conditions are of no importance. commit 153985073c9f7b358d1a5707d4a4a5d1254d01e1 Author: Frederik Heber Date: Wed Jan 4 10:34:58 2012 +0100 Rewrote CountHydrogenBridgeBonds() to use new LinkedCell construct. - enhanced verbosity of CheckHydrogenBridgeBondAngle() and changed parameters to be refs not pointers. - CountHydrogenBridgeBonds() uses LinkedCell to not go through O(N^2) molecules but through all molecules and then through all molecules in the neighborhood that have oxygen atoms close enough. commit 826e8c4cef286b7e87fd674f1ec0a8776fa20f0f Author: Frederik Heber Date: Mon Feb 6 18:46:56 2012 +0100 Introduced new LinkedCell into BondGraph. - new convenience functions BondGraph::getDomain(), ::getLinkedCell(), ::getTime() to have World dependency not in header file (circular include). - new function BondGraph::getMaxPossibleBondDistance() where one element is given. - dropped BondGraph::CreateAdjacency(LC_deprecated) as functionality is better placed directly into templated version directly. - rewrote templated BondGraph::CreateAdjacency that now makes use of LinkedCell_View::getAllNeighbours(). - FIX: BondGraph::CreateAdjacency() created bonds for atom's fathers, not for atoms. - TESTFIX: New LinkedCell construct in BondGraph::CreateAdjacency changes order of ids in adjacency file: - ids are now in order (unlike to before), hence we simply use the new file in the regression test. - this is actually a fault of the test, not of the code as order of ids is not guaranteed in the file anyway. - TESTFIX: Removed XFAILs from regression test Graph/SubgraphDissection- BoundaryCondition. - TESTFIX: CountBondsUnitTest use two molecules that are on top of each other: This causes mess with changed LinkedCell BondGraph recognition, and we even actually need just one molecule for the testing. commit cbcda6ea79e2f05666c81d9534d4cd710a3125e8 Author: Frederik Heber Date: Mon Feb 6 18:51:30 2012 +0100 BUGFIX: LinkedCell_View::getPointsInsideSphere() did not adhere to boundary conditions. - new function LinkedCell_Model::getDomain() such that view may use the same domain and use it when checking distances. commit 5d41b3feb054c87926fecd711b44959b8a632ccd Author: Frederik Heber Date: Mon Feb 6 18:44:02 2012 +0100 FIX: LinkedCell_Model::getStep() uses Box::WrapPeriodically() on given position. - this is to "ensure" -- given correct BCs -- that index is inside domain. - we still assert the index lateron (in case of Ignore BCs). commit ce81e7643f69b7e32a3ea7b3aea0503833075ba1 Author: Frederik Heber Date: Thu Jan 5 19:30:28 2012 +0100 LinkedCell_Controller now signs on to Channel WorldTime::TimeChanged. - we need to know when WorldTime changes because then all atomic positions change. we might use some more elaborate method here but for the moment we just use the method which is also employed in case of Box::MatrixChanged. - renamed LinkedCell_Controller::updateModelsForNewBoxMatrix() -> ::updateModels(). commit 5e2864ecffe7aea73c3db2304360ea66fcf192a5 Author: Frederik Heber Date: Thu Jan 5 19:27:59 2012 +0100 FIX: LinkedCell_Controller now signs on to Channel Box::MatrixChanged. - before we just had this in the test but not in _Controller's cstor. commit 429069f15983a452a937921c8d7a1db8e0fda0fc Author: Frederik Heber Date: Fri Jan 6 10:43:05 2012 +0100 FIX: Forgot that LinkedCell_Controller::updateModels() should also erase Models not viewed currently. - these models are erased after new ones are created to enforce different memory addresses upon which unit test check is based. commit 040a5c4933743745a8fee76949b4470d6e94a33a Author: Frederik Heber Date: Thu Jan 5 19:26:00 2012 +0100 WorldTime is now Observable. - this is required for the LinkedCell_Controller. It has to know when its models have to be re-initialized because all atoms changed positions. - WorldTime::setTime() is no more static and his caused changes in all classes that are friend and may use this private function. commit 38c5d1ddf8e15d850c38f402b8751d3f9e227692 Author: Frederik Heber Date: Thu Jan 5 17:51:58 2012 +0100 Documentation update on how to use the new linked cell construct. commit 712886d5dd98ceec6ac7c744cfb1e679619b80cc Author: Frederik Heber Date: Fri Jan 13 13:27:46 2012 +0100 Renamed Box::WrapPeriodically -> ::enforceBoundaryConditions. commit 7b9fe02f188ea36f9ddfa24ea27ca27e3b422059 Author: Frederik Heber Date: Mon Feb 6 18:48:18 2012 +0100 New function Box::periodicDistanceVector(), using VectorSet::minDistance(). commit c52e08e21874bd6974839eb406e14ffef59a6a4f Author: Frederik Heber Date: Tue Jan 3 12:22:24 2012 +0100 Added new action SetBoundaryConditionsAction. - Added new getConditionNames and setConditions(string) to Box to ensure that Observer mechanism is called when conditions are changed. - added two regression tests: - Domain/SetBoundaryConditions tests the action itself. - Graph/SubgraphDissection-BoundaryConditions tests whether the boundary conditions are used in the subgraph dissection. Set to XFAIL for now as BondGraph does not yet use BCs. commit d66cb7b6eecf9fdb226257ff28ed46a6eeec9270 Author: Frederik Heber Date: Mon Jan 2 20:04:42 2012 +0100 Replaced Conditions_t by BoundaryConditions::BCContainer in class Box. commit dd067a91bd5ce81d3092ebda02eb4e1f20978a8f Author: Frederik Heber Date: Mon Jan 2 19:49:32 2012 +0100 Add new namespace BoundaryConditions with class BCContainer. - BCContainer is a convenience wrapper for the enumeration of the boundary conditions that allows easy setting/getting via strings. commit e230757d8b8f73c8889eb565c9aa5a20052cff43 Author: Frederik Heber Date: Fri Jan 6 14:57:51 2012 +0100 Added new VectorSetUnitTest. commit 537dc4be54b76cb25e5cefbf22cab5f1cd58bf6e Author: Frederik Heber Date: Fri Jan 6 15:13:20 2012 +0100 Added operator<(Vector&,Vector&) to allow for comparison based on their length. - this is to be used in a lambda expression in VectorSet::minDistance(). commit 8c6d18960b1a413406b9d76e087298e7737bb7f3 Author: Frederik Heber Date: Fri Jan 6 15:32:29 2012 +0100 Added VectorSet::minDistance() to return minimum distance under (periodic) boundary conditions. commit 44f53e999bbb8a07d6654248774d7a3bb802ecaa Author: Frederik Heber Date: Thu Jan 5 17:37:05 2012 +0100 Made various verbosities a lot less annoying. - LinkedCell_Model does not notify about all updates on default. - PdbParser notes currently parsed time step. - WorldTime tells about new time step set. - MatrixContainer gives its details at level 3 not 0 or 1. - BondGraph does not tell about each look at its bond length table. - getDipole() does not shout out each dipole vector. commit 98c4284495a104d0620d285c47bc7aa2162c3b04 Author: Frederik Heber Date: Thu Jan 12 15:23:39 2012 +0100 FormatParserStorage has now two convenience functions ::load(). - this way one doesn't have to find out the suffix anymore. commit 3dfd9c9df000029ac47c31db715faaada2d853c9 Author: Frederik Heber Date: Thu Jan 12 09:22:20 2012 +0100 BUGFIX: PdbParser stumbles over CONECT because it reads space-separated token, not substring. - FormatParser< pdb >::getToken has to work on substr(0,6) only to read the type of entry field-wise. - added test to Parser/PdbParser load-various. - Small fix to ::load(), prints now only parsed atoms, not all. - This fixes ticket #160. commit ea7a509ec47cbadf7eaf2c826d1b74447ab8b25d Author: Frederik Heber Date: Fri Jan 6 18:53:45 2012 +0100 Rewrote some of the descriptors such that they access World's AtomSet and MoleculeSet directly. - this is the way they are intended. They are friends of the World and may use the sets directly without causing update()s although they return non- const references. This is because here we need not be careful as no atoms are destroyed or added. - In most cases we had implemented both predicate() and new find() and findAll() that were not necessary (default find..() would do the job better). - This concerned: AtomOfMoleculeSelectionDescriptor, MoleculeNameDescriptor, MoleculeOfAtomSelectionDescriptor, MoleculeOrderDescriptor, and MoleculePtrDescriptor. - We left the specific implementation for AtomIdDescriptor and MoleculeIdDescriptor as they directly access World's Atom- and MoleculeSet and may thus find ids significantly faster. - NOTE: so far some tests are broken and this needs to be fixed yet. commit 52ed5bd5d6abfc345449328e6008a4089fc6e46d Author: Frederik Heber Date: Wed Feb 8 18:36:46 2012 +0100 Ids handed out by molecule now start with 1. - this required some changes because of the shifted molecular indices, especially in: - BondedParticle::OutputAdjacency(): removed +1 - BondedParticle::OutputBonds(): same - Fragmentation::StoreFragmentFromKeySet(): increased array size - Fragmentation::CreateMappingLabelsToConfigSequence() : same - CheckAgainstAdjacencyFile::ParseInExternalMap(): decreased index by one. This is actually broken and only working if World's and molecular indices coincide. - molecule::CreateFatherLookupTable(): increased array size - TESTFIX: CheckAgainstAdjacencyFileUnitTest had its internal file strings' indices decreased by one. commit cdaae6b93f20964a102f00677c3a056b910a1054 Author: Frederik Heber Date: Thu Feb 16 14:38:53 2012 +0100 FIX: BondedParticle::OutputAdjacency() and ::OutputBonds() give uncorrected ids. - tremolo's Id starts at 1, internal (molecular) ones however start at 0. This causes undesired behavior when parsing .dbond files. - TESTFIX: changed ids in .dbond and .adj files of regression tests Molecules/BondFile, Molecules/SaveAdjacency, and Molecules/SaveBonds. commit 560bbe654dd2553da2da442b262caa8c19fde130 Author: Frederik Heber Date: Fri Jan 6 17:49:11 2012 +0100 AtomicInfo now also (re)stores ParticleInfo::Nr, molecule has own IdPool. - molecule now also has an internal IdPool to be able to hand out unique ids, according to uniqueId policy. - new functions: molecule::changeAtomNr(), molecule::setAtomName() - molecule::erase() and ::insert() release and set the id (and the name). - molecule::setAtomName() uses getNr() with id increased by one. - AtomicInfo stores and sets ParticleInfo::Nr. - atom::changeNr() is similar to changeId() only for the molecule. - molecule::AddAtom() does not set the name anymore, is done by ::insert(). - simplified molecule::doCountAtoms() a lot, no more naming of atoms. - SPEEDUP: This speeds up the GUI already a lot. - TESTFIX: changed regression test Tesselation/BigNonConvex due to different ordering of node ids (due to above), surface is still the same (checked). commit ac5c3653eb403b7c1ec8325a5e8c423473bf53fb Author: Frederik Heber Date: Fri Jan 6 17:48:47 2012 +0100 FIX: Forgot to remove now unused idpool functions, were replaced by IdPool. commit 7d46e36d95b842d1a320f748f59b074a84e603c0 Author: Frederik Heber Date: Wed Feb 8 11:51:11 2012 +0100 MEMFIX: RandomNumberEngine_Encapsulation::clone() did leak params allocated in getParameterSet(). commit b97a60ab241f2ecfff0d2258ecdd13f84f8a4f98 Author: Frederik Heber Date: Fri Jan 6 15:37:36 2012 +0100 Modified IdPool implementation to give either unique or continuous ids. - added two class uniqueId and continuousId that get the id type via a template and contain a getNextId_impl(). Also, contains typedef is is_IdPool_trait: - uniqueId always return a greater id. - continuousId implements the old way. - IdPool is now based on two templates, the second is the template that is inherited and its contained function used in getNextId(). - for atoms the id is the sole identifier for which we can guarantee uniqueness. For molecules uniqueness does not make sense. - updated World's documentation on its id pools. - TESTFIX: Filling/FillVoidWithMolecule - both changed because the order of the ids has changed. In one case the bonding id flipped, in the other one atom changed places in .xyz file. (Actually, it's surprising that this is the only glitch occuring due to the changing of the id policy). commit 3867a77b0b871f3d876032f6535a5d1768b84cd3 Author: Frederik Heber Date: Fri Jan 6 16:38:26 2012 +0100 AtomicInfo now stores Father by id not ref. - this migh have caused a crash before with Remove- and UndoActins by: - additionalAtomData pointing nowhere because the id might have changed. - father is stored as ref and not as id. If it's its own father, the ref is wrong. - molecule is given as ref and not as id. - atom::setMolecule() - NULL ref is allowed. - AtomicInfo: stores ids and not refs, first calls changeId then assigns father and mol (who both need updated id). commit 9f8b0194b9ab5a952b72799ceaf29042e6fd1c9c Author: Frederik Heber Date: Tue Feb 7 13:25:24 2012 +0100 FIX: TremoloParser::processNeighbors() always ran through all neighbors. - processNeighbors() now receives a vector of atoms whose neighbors to process. commit 812155f3a4f2a57f31b9d8b82748c71eae962ddd Author: Frederik Heber Date: Mon Feb 6 19:35:40 2012 +0100 TremoloParser::save() redistributes ids in a continuous manner. - i.e. we reset the local to global id associations, set them beforehand and then save the set of atoms. commit 8bf9c67e4d413e6c7a6dda4dbcf57aab0311564a Author: Frederik Heber Date: Fri Jan 6 14:11:42 2012 +0100 All additionalAtomData maps now have const atomId_t as key. commit 2ad1ec843e429f317a78f5fdd2e2b6a4926d4afb Author: Frederik Heber Date: Thu Jan 5 17:10:53 2012 +0100 Rewrite of how GLWorldScene and subsidiaries get notified of changed bonds and atoms. - we have made the connections from the real atoms and bonds to the nodes within GLWorldScene a lot easier. Also this fixes a crash when Subgraph- Dissection is called. - renamed BondedParticle::BondsChanged -> ::BondsAdded. - GLMoleculeObject_bond now observes its associated bond. - added documentation on how the mechanism works in qt-gui.dox. commit 3f7587934b86878ebafb86295528325d0314db80 Author: Frederik Heber Date: Thu Jan 5 12:55:09 2012 +0100 Made bond also an Observable. - for the moment this is not used. commit 74ec1fa772ca1ade3fa853bdf3476c4f6dc24010 Author: Frederik Heber Date: Thu Jan 5 12:54:22 2012 +0100 BUGFIX: Added new channel BondDegreeChanged to AtomObservable, added some BondsChanged notifications. - this should fix crashing of the GUI when SubgraphDissection is called. commit bb645ca228f3668686bf3d842e57a8a6d2b85e4d Author: Frederik Heber Date: Fri Feb 17 10:55:58 2012 +0100 TESTFIX: Removed checking of current year in copyright disclaimer. - this will only cause trouble in the future, although it helps against laziness. commit d08ab389fd2efbb426bd7cda87ea43a90ce9d3f6 Author: Frederik Heber Date: Wed Dec 28 18:57:12 2011 +0100 Set version to 1.2.1 - Molecuilder library is now 7:0:0. - LinearAlgebra library is now 3:1:0 and its API is 1.0.4. - Codename "Injection" (it is one-to-one and probably onto :). commit c0e28c07a3ae4cbff46cf20696b4026104ce4e92 Author: Frederik Heber Date: Wed Jan 4 19:34:22 2012 +0100 FIX: One could not load another pdb file due to local ids messing up. - We enhanced FormatParser_common now contains two maps to go from local to global and back again. Thi is necessary, as ids in a file only make sense within that file. We added the following functions: resetIdAssociations(), associateLocaltoGlobalId(), getGlobalId(), getLocalId(). - adapted TremoloParser and PdbParser because they are the only formats that also contain bond information and where the associations are needed to translate the local connections into global ones. - removed SerialSet entirely from PdbParser, is replaced by new construct, in similar manner AtomIdMap for TremoloParser. - TEST: Added regression tests for all Parser to check for loading twice the same file. commit fbbcde7f3c99a729f52b053aaf1cbb896e703adb Author: Frederik Heber Date: Tue Jan 3 18:21:33 2012 +0100 FIX: TestRunner is now compiled based on AM_CONDITIONAL set by HAVE_ECUT. commit 9fd196a18e0a47b5eb4d5d4d98793332ac09cad9 Author: Frederik Heber Date: Mon Jan 2 17:50:03 2012 +0100 Added bash_completion file. - use as . utils/Bash/bash_completion, installed in bin folder. - moved all python files in utils into subfolder Python therein. - We scan molecuilder's help output for the present actions and return in COMPREPLY, fully capable of giving option to last action and all available actions in any other case. - we expand files if no "--" is given. - TESTFIX: Python/BoxMaker needs to call boxmaker.py from utils/Python. commit b40080ff7038dadce974501ba0921c902ea739e0 Author: Frederik Heber Date: Thu Jan 5 12:41:14 2012 +0100 FIX: Forgot to add m4/ax_molecuilder.m4. commit e65b264429729ac3e8a39b1cff4e0c3da7a1c92a Author: Frederik Heber Date: Wed Jan 4 12:26:47 2012 +0100 FIX: LinkedCell_Model::getNeighborhoodBounds() had wrong relative upper corner on Ignore BC. commit c9c3c991eb4ad65ee03c9f8497e34b705c0a3478 Author: Frederik Heber Date: Wed Jan 4 11:35:18 2012 +0100 MEMFIX: Forgot to purge AtomObserver instance. commit 5972c38660ce8bfe4abe05aadd3b6670d0ca781c Author: Frederik Heber Date: Wed Jan 4 11:32:35 2012 +0100 MEMFIX: LinkedCell_Model did not release N (Linked cell array). commit b6f5bca2a8b01f1be50e7ea743e1abeb08e08178 Author: Frederik Heber Date: Wed Jan 4 11:31:06 2012 +0100 FIX: Fixes to idpool implementation that did not initialize all its member variables. commit 7111d4b38b87e5d3ee3f3bc507eb41c049e56243 Author: Frederik Heber Date: Tue Jan 3 18:22:09 2012 +0100 FIX: LinkedCell_Model::setPartition() did not assure Dimensions is integer. - we now assert that LinkedCell_Model::Dimensions is symmetric, diagonal. - FIX: its components are integer by slightly enlarging the edge length. This is required to correctly placed nodes inside cells. commit c9cafae3a5f701f6ad7fcb9c37a3ae80bc41ffcf Author: Frederik Heber Date: Wed Jan 4 10:39:24 2012 +0100 Some warning fixes. comparison signed/unsigned: - molecule::FillBondStructureFromReference() commit b75386102c01f78fed1672b79dacce138116fcf9 Author: Frederik Heber Date: Tue Jan 3 17:22:59 2012 +0100 Verbosity fixes to LinkedCell_Model and _View. commit 57a77028e5559bee9b5052cdd1e9b9a70c695bd2 Author: Frederik Heber Date: Wed Jan 4 14:26:47 2012 +0100 Corrected verbosity levels of GLMoleculeObject..., GLWorldScene, and ..View. - placede messages from Observer's to observerLog. commit 0aa122d5f3137de21e283fdaa583b526d33a6540 Author: Frederik Heber Date: Mon Jan 2 14:57:02 2012 +0100 Updated all source files's copyright note to current year 2012. commit e215c133f85e17388f702f7bfcad150b1acfb8d9 Author: Frederik Heber Date: Wed Dec 28 18:05:04 2011 +0100 DISTCHECKFIX: Forgot to add LinkedCell header files to some targets. - Forgot to add LinkedCell/types.hpp to target in Makefile.am. - Forgot to to add LinkedCell/unittests/defs.hpp to targets in akefile.am. commit c48a51f43b8d3a851064d11f8090962cd66b3cbc Author: Frederik Heber Date: Wed Dec 28 17:50:10 2011 +0100 DISTCHECKFIX: Forgot to remove folder Python from tests/regression/Makefile.am. commit 7c019170530b54da9d757a092296cc5d2bb6efde Author: Frederik Heber Date: Wed Dec 28 15:57:08 2011 +0100 We now require CodePatterns 1.2.1. - this is to incorporate the Chronos clock->seconds conversion fix. - Bug report by Jan Hamaekers. commit 69459d564dbe1fbe4f211888bdb22d63faa755b5 Author: Frederik Heber Date: Thu Dec 22 10:33:28 2011 +0100 Added unit test on changing box to LinkedCell_ControllerUnitTest. - Added setM() to ObserverBoxStub, needed for updateBoxTest(). commit 2ced6b357227c511512210e4f9802519b5ff478c Author: Frederik Heber Date: Thu Dec 22 10:26:45 2011 +0100 Replaced Molecuilder library dependencies by stubs in LinkedCell_...UnitTests. - Implemented stubs for World and AtomObserver. - Renamed BoxStub to ObserverBoxStub. - Enhanced stub for TesselPoint, defines its own class to get around all those virtual inheritances. - LinkedCell_ControllerUnitTest uses molecuilderLinkedCell lib but no other, everything else is stubbed. - LinkedCellUnitTest is now the same. commit b1c5ddb6c2dc1792b43fa42d24a01b1fcdb3fe98 Author: Frederik Heber Date: Thu Dec 22 11:58:21 2011 +0100 FIX: Made TesselPoint's dstor virtual. - this caused undefined reference to typeinfo for TesselPoint errors when trying to create a stub for the class. commit cbdcb10f6cf4dbc5be84a8c1cd660b931affa17f Author: Frederik Heber Date: Thu Dec 22 09:59:40 2011 +0100 Added LinkedCell_View_ModelWrapper to safely keep LinkedCell_Model out of _Views' grasp. - This is the only way to keep _View away from its own pointer without declaring it "const" which prevents _Controller from re-instantiating the model after the Box has changed. - Added logging to LinkedCell_Controller::updateModelsForNewBoxMatrix(). - Switched order of delete/create in updateModelsForNewBoxMatrix(). This is necessary such that newref is not created on top of oldref and hence unit test may fail. commit 4a816966425096ec9bd0a17aa70a3dbfe04c7665 Author: Frederik Heber Date: Wed Dec 21 19:03:15 2011 +0100 LinkedCell_Controller is now an Observer. - new function updateModelsForNewBoxMatrix() which updates the models in all active views. - so far we are hampered by const LinkedCell_Model& ref. commit 99f4ee808622819ff9de4956da3988021e56d66a Author: Frederik Heber Date: Wed Dec 21 19:02:07 2011 +0100 Class Box is now also an Observable. - it has two channels to notify about changes in its Matrix and boundary conditions. commit 9ed706d2228d2edefef36a2b55322f6421480603 Author: Frederik Heber Date: Wed Dec 21 19:00:53 2011 +0100 Implemented counting of active LinkedCell_View instances in static map. - this will allow us to exchange the models when the domain changes without the user noticing. commit c29915751600543b3ce3bc771ea4eb5b2b9ab924 Author: Frederik Heber Date: Wed Dec 21 18:59:27 2011 +0100 LinkedCell_Model cstors are now private but LinkedCell_Controller is friend. - this way only LinkedCell_Controller can construct new models. commit 455043c33527649a64f47812a06348673a15ad57 Author: Frederik Heber Date: Wed Dec 21 18:57:51 2011 +0100 Changed MapEdgelengthModel to contain const ref as value. - LinkedCell_Controller::insertNewModel() gets const ref as param now. commit 54f3d11a82854765641343eac08c593e5d58b8ad Author: Frederik Heber Date: Wed Dec 21 11:35:41 2011 +0100 Removed short-wiring of updates as they are now passed through LinkedCellArrayCache. - replaced ..._internal() calls by Changes->addUpdate(..) in LinkedCell_Model. - added some verbosity to allow for following the chain of updates. - new unit test function lazyUpdatesTest() in LinkedCell_ModelTest. - TESTFIX: nodeTest() and insertPointCloudTest() needed a forced update at the right places due to the cached nature now as they access internals bypassing the automatic updates. commit 8c318650ec230fdda3b798297d3d0a0d7b7c3776 Author: Frederik Heber Date: Tue Dec 20 15:28:33 2011 +0100 Added new class LinkedCellArrayCache that performs the lazy updates on a LinkedCellArray. - basically, we cache all write operations and perform them first when there is a read operation that requires an up-to-date structure. - we cannot do this via the Cacheable pattern was there we always have a return value of the update structure. It is currently unknown how to initialize a cached pointer (apart from always checking for this in the update function). commit e776dc24d230fdf211894710f74ffba42667f5e0 Author: Frederik Heber Date: Tue Dec 20 12:50:48 2011 +0100 Added internal classes Update and changeModel to LinkedCell_Model. - this are not yet used. - Update contains a single update operation associated to a node. - changeModel contains a map of all due updates. commit cf6530fb17aed9982c010170c14317e052722592 Author: Frederik Heber Date: Tue Dec 20 11:40:23 2011 +0100 Implemented LinkedCell_Model::moveNode_internal(). - updated unit test as well. commit a5b2b6b0760713e75c784f4ffe6c347e206b2359 Author: Frederik Heber Date: Tue Dec 20 11:39:44 2011 +0100 Simplified LinkedCell_Model::deleteNode_internal(). - this is possbile due to making argument of update function always const. commit db89600810e8e7e4f9a3b70c23556f264f49cdb6 Author: Frederik Heber Date: Tue Dec 20 11:25:43 2011 +0100 Shifted functionality of adding, moving, and deleting nodes to internal functions. - internal functions are so far short-wired to outside. - this is preparatory for caching changes (lazy evaluation). commit bbab877acee03ce45c24d618b44ae969011e5e45 Author: Frederik Heber Date: Mon Dec 19 22:57:06 2011 +0100 Added test for new descriptor AtomsWithinDistanceOf to AtomDescriptorUnitTest. - in AtomDescriptorTest::AtomsWithinDistanceOfTest(): ids must not necessarily be in order, added functions that make comparison based on simple N^2 search and helper functions. commit 7afb7733a1431bbb839abcfc5b1dd0d143dba39b Author: Frederik Heber Date: Mon Dec 19 19:34:15 2011 +0100 Added AtomsWithinDistanceOf descriptor. - this is basically just a nice interface to LinkedCell_View which is used internally to find the atoms. commit 4834f4bc1360623d2ad20e7dab653447280b63b3 Author: Frederik Heber Date: Mon Dec 19 18:11:22 2011 +0100 World now has a LinkedCell_Controller and function getLinkedCell(). - we give World's atoms as param to LinkedCell_Controller::getView(), i.e. obtained views from getView() now contains all atoms (and are not empty). commit 53d894c34a1a8ff0f2e679e04918aa717133bfd4 Author: Frederik Heber Date: Mon Dec 19 22:50:54 2011 +0100 Changed LinkedCell_Model::getNeighborhoodBounds() and LinkedCell_View::getAllNeighbors(). - NeighborhoodBounds are now index and offset style, not two real bounds anymore. This way we were able to get getAllNeighbors() actually working. - getNeighborhoodBounds() was overloaded nonsense for Bounce case, it is now much simpler: we just crop the interval at the boundary. commit c806430dd9192196eecf5a8e808273f583a12492 Author: Frederik Heber Date: Mon Dec 19 22:49:53 2011 +0100 LinkedCell_Controller::getView() now needs a PointCloud set. - this will allow the World to initialise new LinkedCell_Model, which at the very start first need to know about all presents atoms in the World. commit 4459fcac9c9f1ef9ec32ea88af1da695c2b4e845 Author: Frederik Heber Date: Mon Dec 19 22:38:50 2011 +0100 Refactored typedef tripleIndex into own structure. - we need the struct to accomodate some helpful operators. commit c8f6b692b88a0dc8e4758c132ca2f8a448ac41cc Author: Frederik Heber Date: Mon Dec 19 22:48:15 2011 +0100 Small fixes to LinkedCell_ViewUnitTest. commit b49568059bb63eb10a31cce9ac87e75d9a32c8e6 Author: Frederik Heber Date: Mon Dec 19 19:09:49 2011 +0100 Added new descriptor AtomOfMolecule. - also added new unit test function. commit d7853188762dba95151f1e69c42148748e218394 Author: Frederik Heber Date: Mon Dec 19 18:02:23 2011 +0100 Library LinkedCell_refactored is now contained in lib LinkedCell. commit 6bd7e05ae215210d42ef6cb22768847bee2ce5da Author: Frederik Heber Date: Mon Dec 19 17:46:11 2011 +0100 Renamed old LinkedCell class to LinkedCell_deprecated. - this is preparatory for a smooth transition to the new implementation. - note that class LinkedCell and namespace LinkedCell bite each other so far. commit f55ae56e4b38350f4245571086191b0a40f6e956 Author: Frederik Heber Date: Mon Dec 19 17:18:25 2011 +0100 Implemented LinkedCell_Model::recieveNotification(). - i.e. it now calls addNode(), deleteNode(), and moveNode() on the appropriate notification. commit 02987071e3d38c873d62de7816c0f4d69216d14c Author: Frederik Heber Date: Mon Dec 19 17:17:02 2011 +0100 FIX: LinkedCell and LinkedCell_Model now store _const_ TesselPoint ref in their lists and maps. - this mainly stemmed from changing LinkedCell_Model::addNode() and is required as World's lastChanged is a const ref (and we do not need to changed the object itself anyway, we are only bookkeeping!). commit 402f2c95de22204c80eb8263dcae72f384eae68c Author: Frederik Heber Date: Mon Dec 19 17:00:11 2011 +0100 LinkedCell_Model now signOn/Off to World and AtomObserver. commit 97c25501cdca20b601f0fa7b5f1e7524cf194d1e Author: Frederik Heber Date: Mon Dec 19 15:12:54 2011 +0100 Added unit test for AtomObserver. - added position and element channels from AtomObservable to AtomObserver. - NOTE: AtomObserver does not relay general update() calls. commit 5dfabdae3cbf78f772003f96b321468cd321f7eb Author: Frederik Heber Date: Wed Nov 30 17:32:43 2011 +0100 Added singleton class AtomObserver that acts as relay station to all atom changes. - uses Relay pattern. - is called in World::createAtom() to signOn on time. - update() relays the update call on to true observer. commit 2614e2a00e7cda71401ccb728478c22e406f12a3 Author: Frederik Heber Date: Wed Nov 30 14:10:23 2011 +0100 LinkedCell_Model now inherits Observer. - implemented facade for the three Observer-required functions, also adapted stub. - next we need to have the World observe each atom and give Notifications about it. Then, we add each model to this channel and implement the update. commit fe82539bed03ef657b7febd017e0b3a949cda365 Author: Frederik Heber Date: Wed Nov 30 11:26:35 2011 +0100 Added first reasonable heuristic, and added required implementation for Controller. - LinkedCell_Controller::getBestModel() nows contains some more advanced heuristics. - extended unit test on all of the added parts. commit 9a5649c1cc4ae0e855f0ee7842ecd59dbafeacee Author: Frederik Heber Date: Tue Nov 29 11:15:32 2011 +0100 LinkedCell_ControllerUnitTest only depends on stubs now. - i.e. we do not link against convenience libMolecuilderLinkedCell_Refactored anymore. commit fea945d620239c90af4f79b6ad78cde77e453de4 Author: Frederik Heber Date: Fri Nov 18 16:07:38 2011 +0100 Added simple implementation for LinkedCell_Controller. - getBestModel() contains the (non-working) heuristic stub. - getView() calls getBestModel() to obtain current best model or creates a new one and returns the view of this model. - added unit test that does not yet test any functionality. commit 6b91e6417f39a42bdd14fb1186aea6a23e51aa9a Author: Frederik Heber Date: Tue Nov 29 10:20:04 2011 +0100 Added convenience library for files of new LinkedCell implementation. - is used with unit tests only so far. - name is temporary to vaid class with present convenience library. - Temporarily added libMolecuilderLinkedCell_refactored to ALLLIBS for TestRunner. This is changed when we swap the now two LinkedCell libraries. commit c379f9430a4c84b4863188025cd84941b7267e40 Author: Frederik Heber Date: Tue Nov 29 10:17:23 2011 +0100 Extracted defines for unit tests and placed into extra header file for re-use. commit 5344e4935985c68c502a7e1e2e936a0ac622ef57 Author: Frederik Heber Date: Fri Nov 18 09:11:57 2011 +0100 Added implementation of linked cell view part with high-level functions. - LinkedCell_View has nearest neighbor functionality. commit d8296152e374a74c483120eb411121989ba27a98 Author: Frederik Heber Date: Fri Nov 18 09:50:26 2011 +0100 Added implementation of linked cell model part using LinkedCell. - setPartition() sets Partition trafo and defines array bounds Dimensions. - addNode() and deleteNode() are working. - getStep() returns the number of neighbor shells needed. - getSize() returns array size for a given dimension. - getIndexToVector() returns index to LinkedCell for a given position. - checkArrayBounds() and applyBoundaryConditions() check and apply domain's boundary conditions. - getNeighborhoodBounds() returns lower and upper bounds to get through all LinkedCell's and gather neighbors. - each is unit tested. commit 02ce363b06a8f5ac471e055cfd494a84e197010f Author: Frederik Heber Date: Mon Jan 2 13:57:32 2012 +0100 We now require CodePatterns 1.2.0. - this is due to the updated Observer structure and multi_array MemDebug bugfix. commit b3fb31e61f105f4d48d1543c58f2727b4742bf2d Author: Frederik Heber Date: Tue Nov 29 10:25:38 2011 +0100 Added MAX_LINKEDCELLNODES enum to types.hpp. commit 71d81a4beedb94e61ac57a62dfd6e640ce50f1ee Author: Frederik Heber Date: Fri Nov 18 14:22:33 2011 +0100 FIX: Box::Box did not initialize Conditions_t with RealSpaceMatrix argument. commit 95422c13513e471b244d90385e0888e332e5fbde Author: Frederik Heber Date: Fri Nov 18 09:50:05 2011 +0100 FIX: LinkedCell/types.hpp now uses NDIM instead of 3. commit 794bc8a63dc9704a2721bae96fbed047481b255a Author: Frederik Heber Date: Thu Nov 17 13:01:09 2011 +0100 Added LinkedCell as commodity class around LinkedList. - LinkedList is the container of all points in the cell. - LinkedCell additionally stores the index to the linked cell structure. - addPoint() and deletePoint() functions. - added unit test. commit df9cbdd687c3bb66560705c8a9ed2c0930d1c1be Author: Frederik Heber Date: Thu Nov 17 12:53:43 2011 +0100 Added documentation on how refactored linked cell structure is supposed to work. commit 6f0841afb57916ffe2e660310f1ff1062d59144a Author: Frederik Heber Date: Tue Nov 15 15:58:11 2011 +0100 Shifted all modules related to atoms into own subfolder src/Atom/ - also created own convenience library for this. This makes unit testing on list containing TesselPoint or atom a lot easier. - shifted TesselPoint to src/Atom from src/Tesselation and adapted include's. commit 91f5923f3b692613cf8dacb735a1502afa9471e8 Author: Frederik Heber Date: Tue Nov 15 15:15:25 2011 +0100 Added own convenience library for LinkedCell construct. commit aa6c750e6eb1613052133fde2c7fc67bee85b55c Author: Frederik Heber Date: Tue Nov 15 12:31:56 2011 +0100 Removed some unnecessary LinkedCell.hpp include's. commit 53c7fc2e5e8198eaf2ef2d962e2e7c72910e48ae Author: Frederik Heber Date: Mon Nov 14 17:29:50 2011 +0100 Moved linkedcell.[ch]pp and related files to folder src/LinkedCell. - adapted all #include's. - also sorted includes of modified files. commit 3e4fb6fae7d3dcc8e46ee174d7b9a70a995ac178 Author: Frederik Heber Date: Fri Dec 23 15:48:37 2011 +0100 Added template class IdPool used by World to manage defragmentable id pool. - this is stuff from World factored into own class (was doubly present in World anyway). - added short documentation to constructs/world. commit 401f9015681e7b504bce7c3914a00d118029c739 Merge: f9b967b adb5cda Author: Frederik Heber Date: Wed Dec 28 16:27:15 2011 +0100 Merge branch 'Removing_molecule_atomSet' into Merge_molecule_atomSet_removal Conflicts: src/molecule_geometry.cpp - molecule::CenterInBox(): don't use BOOST_FOREACH but new transform_iterators. commit adb5cda5be52f4f5d63932b345da97b6eade88fd Author: Frederik Heber Date: Fri Dec 23 16:17:07 2011 +0100 Removed typedef molecule::atomSet and some commented-out, deprecated sections. - required changes to LinearInterpolationBetweenSteps, MinimiseConstrainedPotential, MinimiseConstrainedPotential, and VerletForceIntegration. - replaced molecule::atomset by World::AtomComposite. commit afa9d887de1bca80ec730fa5fb5804363c05a126 Author: Frederik Heber Date: Fri Dec 23 12:06:05 2011 +0100 TESTFIX: Fixed regression tests Molecules/BondFile and Tesselation/BigNonConvex again. - Molecules/BondFile: replaced result file with new one as the only difference are interchanged ids (and the new ones are more sensible anyway). - Tesselation/BigNonConvex: same here for the same reason. - removed XFAILs from both. commit 59fff1699458425079bb0a93f0c33d6ce50aae7d Author: Frederik Heber Date: Fri Dec 23 11:09:37 2011 +0100 Replaced the molecule::const_iterator by a true const version of the transform_iterator. - lots of places used const_iterator where it made no sense, atom some others one could have sensibly done so but details prevented it, e.g. - FormatParserStorage::save() requires vector not const atom *, - Boundaries (and most of Tesselation for that) requires atom *, not const atom *. - Added new function molecule::isInMolecule() to check whether atomic id is in molecule::atomIds. - Added const version of atom::GetTrueFather(). commit 30c7536948400224f2fc3e945a95099d12c23b3a Author: Frederik Heber Date: Thu Dec 22 14:14:16 2011 +0100 Removed atomSet atoms in class molecule and replaced by a boost::transform_iterator. - atoms causes us a O(N^2) complexity due to having to remove atoms from this linearized vector (in O(N) not O(log N) as for the atomIds. - marked Molecules/BondFile and Tesselation/BigNonConvex as XFAIL due to interchanged ids. - thanks to Jan Hamaekers for pointing this out. - NOTE: so far we have not specialized molecule::const_iterator, it simply points to molecule::iterator. commit f9b967b72e4892fd47c07969c3776b47bf7f6616 Author: Frederik Heber Date: Thu Dec 22 14:38:35 2011 +0100 FIX: Removed unique()'ing usedFields call in each FormatParser< tremolo >::saveLine(). commit 89a31dfea6d23ffd5380305f11ed7d1ae35a4a7e Author: Frederik Heber Date: Thu Dec 22 14:39:23 2011 +0100 Enhanced verbosity of FormatParser< tremolo >::readAtomDataLine(). commit f99714d367d279ee28493384986f2e0cf9b2efe7 Author: Frederik Heber Date: Wed Dec 21 16:01:47 2011 +0100 FIX: Finally correctly implemented all --enable-... switches in configure. - The principle is: AC_ARG_ENABLE([option], [help], [if present], [if not present]). In the last we set the default value of our own variable (e.g. enable_...="no"), in the last but one we simply set enable_...=$enableval to get the value from the command line. - also I used AS_IF everywhere in checking the enable_... value. commit f2330310e8573c71b1ee3edbcb06336e2a361a3a Author: Frederik Heber Date: Thu Dec 22 13:55:28 2011 +0100 Small fixes to FormatParser< tremolo >::parseKnownTypes() to give more specific error messages. - also placed info about cleared usedFields in LOG() call. commit d103d335f1f411ee26c2568846556af546c71b43 Author: Frederik Heber Date: Mon Dec 19 15:31:30 2011 +0100 Added additional check in CodeCheck's project disclaimer for current year in copyright. - had to modify all .cpp files to update to 2011. commit 908dc743816b2e8b11f5297f04644e47e0d110d9 Author: Frederik Heber Date: Thu Dec 22 13:52:15 2011 +0100 FIX: molecule::CenterInBox() made noise on std::cout, banned to LOG. commit abae35016291f010810eaac8320b7bd3c1e4cf37 Author: Frederik Heber Date: Mon Dec 19 15:24:56 2011 +0100 Added CodeCheck on presence of project disclaimer in all .cpp files. - added disclaimer to missing in Thermostats/*.cpp and MenuInterface.cpp. commit 6108fde5a8886068ae30de0826b737d61fb539fc Author: Frederik Heber Date: Mon Nov 21 09:13:29 2011 +0100 FIX: Added missing CodePatterns libs to Element's unit tests. commit bab4f9764a30714f8588b029fa96ea36b46e6b5e Author: Frederik Heber Date: Mon Nov 21 09:12:52 2011 +0100 FIX: Setting up and purging ActionRegistry instance in ActionRegistryTest. commit 7bace8c6a0fc5f316d62ec82ddff0efda879896b Author: Frederik Heber Date: Fri Nov 11 21:06:48 2011 +0100 FIX: LinearAlgebra's testrunner was not linked against boost serialization. commit db1a72013fea41fc1ac6c55b5d884661f6460d22 Author: Frederik Heber Date: Fri Nov 11 13:30:10 2011 +0100 FIX: Corrected check for gsl's blas requirement. commit c015b3946b9bb714ae6740f4fbfd3378234a0404 Author: Frederik Heber Date: Fri Nov 11 13:16:24 2011 +0100 Added enable-switches for Qt-based GUI and python module and scripts. - note that encapsulation in AS_IF is absolutely required as otherwise lateron checks will produce strange errors as required checks reside in an unseen if ..; then branch, initiated by AC_PROG() ... or other contained macros. - Added AM_CONDITIIONAL's to modify Makefile.ams depending on above enable switches. - AM_COND_IF controls whether certain Makefile's are produced or not. - moved Python regression tests into own folder to control whether they are executed or not. - molecuildergui and libMolecuilderQtUI are only compiled with qtgui enabled. - same for pyMoleCuilder and its scripts only when python enabled. commit f3b8a5e4ed78b89055bacdcab557b7887840b6a3 Author: Frederik Heber Date: Fri Nov 11 13:12:50 2011 +0100 Changed enable switches in configure.ac. - with-valgrind is protected by AS_IF now. - corrected AC_MESSAGE for debug and cache. commit e06010a270e33777c1171131b7a376f7f344b5d5 Author: Frederik Heber Date: Fri Nov 11 10:55:47 2011 +0100 FIX: Added missing ax_python.m4, added support for 2.7. - added python2.7 to the loop. commit b136f6cb6115f5aa5fd5e6ccb908c72f030b84f4 Author: Frederik Heber Date: Tue Nov 29 10:16:30 2011 +0100 FIX: Added Assert_Do to linkedcellUnitTest. commit 68c92366449b96cba16e719bf1bc16ca92f66370 Author: Frederik Heber Date: Tue Nov 29 09:22:26 2011 +0100 Lots of small compiler warning fixes. Issues: - non-virtual destructor despite virtual functions. - unused variables. - no break at end of switch case. - no value returned. commit de29ad6ec3f6c4826f398de6a82efb8324c26e79 Author: Frederik Heber Date: Wed Dec 28 15:58:52 2011 +0100 Some optimization to speed up Subgraph dissections. - Replaced std::list by std::vector in VectorSet<>::minDistSquared() and Box::internal_explode() as it caused lots of dynamic allocation. This has been the main cause of the slowdown of Box::internal_explode(). - Box has internalized vectors coords and index of internal_explode() to avoid dynamic allocation for them as well. This is worth it as it has a heavily used function. - Made Box internal_list non-static. There is only one box anyway. - changes caused in BoxUnitTest and Box cstor's and dstor. - speedup of Subgraph - enhanced verbosity of BondGraph::CreateAdjacency(). commit bde4a64a31e3c0f73726198e3b7737797d60a1b2 Author: Frederik Heber Date: Mon Nov 7 20:30:03 2011 +0100 Set version to 1.2.0 - Molecuilder library is now 6:0:0. - Codename "Zwoelf" (German word for the number 12 which has too many meanings to listen them here) commit 936a02c90039dcc86f22c9ccd060237b13b9ca81 Author: Frederik Heber Date: Thu Nov 10 15:57:21 2011 +0100 Creating data dir for bondtables, databases, and molecules. - Moved .db files from src/Element to data/databases. - Added bondtable.dat from VSpeShape (kudos Christian Neuen) to data/bondtables as an initial bond table from geometry optimization of bielemental systems. - Added some abitrary molecules to data/molecules. - Added src/documentation/data.dox to explain purpose of the folder. commit 1a041f358530099250e51de113626e46dc482001 Author: Frederik Heber Date: Thu Nov 10 12:22:18 2011 +0100 DOCU: added documentation on how to debug the code. commit 04e1fb9b749ae4d67250fddbb3bef9aa9a16e259 Author: Frederik Heber Date: Thu Nov 10 11:20:20 2011 +0100 Added rules to utils/Makefile.am such that python script can be called directly. - this is heavily inspired from http://blog.couchbase.com/installing-python-scripts-automake, which is only adapted to the usage of pyexecdir and having all variables set by autoconf. commit 938ffdd39e9b351741dc5a305c9834cbf97a3cd9 Author: Frederik Heber Date: Thu Nov 10 11:06:48 2011 +0100 Added Makefile to utils to install python scripts. commit 0d571d7276ebe9c1a1773e4b2150ee012778f1b4 Author: Frederik Heber Date: Wed Nov 9 15:19:29 2011 +0100 DISTCHECKFIX: Forgot to set write permissions for new ec.data test files in RepeatBox regression test. commit a55be103100d6fcff0fe7045017f879437f76d8f Author: Frederik Heber Date: Wed Nov 9 11:43:42 2011 +0100 DISTCHECKFIX: testsuite does not depends on run scripts. - Python/run is similarly not a dependency as the molecuilder, joiner, ... scripts as they are created by configure and not automake. commit 12facf18b09b4648333e0fe89c03343bc34892d3 Author: Frederik Heber Date: Tue Nov 8 09:11:47 2011 +0100 Removed now obsolete Pythontest including regression test. - as pyMoleCuilder is now fully working (and the obtrusive bug is fixed), we do not need this test case anymore. commit dd0f1b1e1a9125755de73d4edd0d787f21f7d5c6 Author: Frederik Heber Date: Tue Nov 8 12:44:05 2011 +0100 DISTCHECKFIX: Added AllActionPython.hpp and AllActionHeaders.hpp to exception for config_h code check. - these are generated for the archive and present there, hence need to be excluded. commit 48d3c04f127648994f9bb992902f82fdf27e06e4 Author: Frederik Heber Date: Tue Nov 8 09:09:35 2011 +0100 DISTCHECKFIX: Added some missing header files in src/Actions. - some of the new python files were not in ...HEADERS. commit 4269cad0335489e8765429362c6500291a09f3e2 Author: Frederik Heber Date: Mon Nov 7 17:57:31 2011 +0100 FIX: Some Qt includes were not style-consistent. commit 5dfeeb2b4133f0bc8c5526397e89e3306f10a2ff Author: Frederik Heber Date: Mon Nov 7 11:08:22 2011 +0100 DISTCHECKFIX: Added forgotten Doxyfile to EXTRA_DIST. commit 24da485f43375167b5cf182eca27274ba36aeb39 Author: Frederik Heber Date: Fri Nov 4 16:40:53 2011 +0100 DISTCHECKFIX: Added missing ActionTraits.hpp to src/Actions/Makefile.am. commit c1ab1f524dcd3aeba2c82df3d7b694dfdf21e70f Author: Frederik Heber Date: Fri Nov 4 16:15:33 2011 +0100 DISTCHECKFIX: Added all Reaction...hpp to src/Actions/Makefile.am. commit ed300063c90aa3e4eafcdc71806fd77a7c690f40 Author: Frederik Heber Date: Fri Nov 4 16:10:46 2011 +0100 DISTCHECKFIX: Removed bnv_have_qt.m4 from EXTRA_DIST. commit e85bf295d447e86bfa5bd02fdb4a1e7e30386f3c Author: Frederik Heber Date: Thu Nov 3 20:18:24 2011 +0100 Added code check test whether every .def's Action is listed in GlobalListOfActions.hpp. commit 5ab79642b2ba78c42f87eb801b807a6eb32d0770 Author: Frederik Heber Date: Thu Nov 3 17:09:37 2011 +0100 Added regression test on whether all options in the python module are known with a default value. - i.e. options.dat is complete and contains a value for each required option in Python/AllActions test. - added a few missing options to options.dat (thx test). commit f894fe4b6a17e5e13a9d4c6a8a91562a6565cfb5 Author: Frederik Heber Date: Wed Nov 2 02:17:53 2011 +0100 Changed GetSourceMolareMass() and GetSourceBBabs() of boxmaker.py. - now all is done in a single molecuilder run, there are no more temporary files. - also renamed UpdateSource -> InitialiseSource. commit f89b45ee33bbea1e1d6d5257495f6e87aeb29aeb Author: Frederik Heber Date: Wed Nov 2 02:13:59 2011 +0100 Added Reaction CalculateBoundingBoxAction. - calculate bounding box via Box::getBoundingPlanes() of the current domain. - also added regression test Analysis/CalculateBoundingBox. exporting std::vector as return value. - had to add trick with exporting std::vector to python with help from stackoverflow("does boost python support a function returning a vector, by ref or value?") answer. We construct a vec_item template class which exports getter/setter, append, ... functionality to python. - This ends in typedef doubleVec in namespace MoleCuilder::PythonTypes, while within the Reaction its just a typedef defined in the .def file. - this type had to be prefix with PythonType_ to make it distinguishable from the functions in dir(mol) for Python/AllActions regression test. - TESTFIX: Also we modified Python/AllActions regression test to go in a loop over each command, thus stdout and stderr can be uniquely associated to the very command that caused them. This makes debugging a lot easier ... for this purpose the dir(mol) and filtering was placed into new listcmds.py. commit 55f299a96cda2fac6f625bb867138422ecaec949 Author: Frederik Heber Date: Wed Nov 2 01:07:42 2011 +0100 Added Reaction CalculateMolarMassAction. - calculate molar mass (atomicmassunits) of selected atoms. - also added regression test Analysis/CalculateMolarMass. commit 6c61a977646015caffe230700aebdc01790a832d Author: Frederik Heber Date: Wed Nov 2 00:53:12 2011 +0100 Added regression test for boxmaker.py. commit 2aa9eff5378f2eadd12d48e3d6915fb4c37291a5 Author: Frederik Heber Date: Wed Nov 2 00:53:28 2011 +0100 UpdateSource function of boxmaker.py is not an external call to molecuilder anymore. - this is unusable in a test and was contradictory to the intention of a script. As now we may safely reinit() the pyMoleCuilder module, we may use it to do the same as the external call did. commit dfef3fc238df9e0ba66db8ecc94dad83474bf43f Author: Frederik Heber Date: Wed Nov 2 00:27:34 2011 +0100 FIX: empty states Action::success and ::failure are now managed by ActionHistory. - the python function reinit() runs into trouble because the static entities Action::success and ::failure are missing after a reinit() causing a std::exception to be thrown. Now we manage the static state instances via ActionHistory cstor and dstor. As ActionHistory::init() must be called before any action is called, this should always work well. - added static function Action::createStaticStateEntities(). commit d628da29ae70d201baafa642587e70d7cecb50d1 Author: Frederik Heber Date: Tue Nov 1 23:29:39 2011 +0100 Added docstring also to python exported functions without any parameters. - actually the trick is to not give a std::string but just "...", probably there is some magic involved that can not deal with real instances but just with const values or something ... commit 567357327df58f213deda25db79a4a8e493bf567 Author: Frederik Heber Date: Tue Nov 1 23:28:03 2011 +0100 FIX: cleanUp() replaced by module_reinit() and .._exit() in pyMoleCuilder. - this causes ostream to be set with FormatParserStorage and hence files to be correctly written. - module_reinit() is python exported as "reinit". This allows for reuse of the module. - both module_... reside in namespace MoleCuilder::detail. - ..._reinit() does not use cleanUp() but only purgeStaticInstances(). commit b5d38d24f005e657e47a9754b47a4696cb55a7ff Author: Frederik Heber Date: Tue Nov 1 23:27:22 2011 +0100 Moved dumpMemory() and saveAll() from module builder_init to cleanUp. commit bcfb774f1eae99eb4252d4bb7fe6ad4d414c73db Author: Frederik Heber Date: Thu Oct 20 15:50:55 2011 +0200 Added correct shebang to boxmaker.py. - also configure fills in @PYTHON@. commit 239cc57faea9ab4ff23fdb44d3f06eb29ed9d550 Author: Gregor Bollerhey Date: Thu Oct 20 15:23:48 2011 +0200 Didn't save the file -.-" commit bfbb62f5982807ebb366202d009e31e5c9e97c0c Author: Gregor Bollerhey Date: Thu Oct 20 15:22:08 2011 +0200 Final version 1.0 - Added shebang line - Added short file describtion and author information commit c0c85f8b81b5784166c5b2636636807351221f02 Author: Gregor Bollerhey Date: Thu Oct 20 15:16:38 2011 +0200 Restructured Code - temp_source.xyz is created only once - boolean mapping with dict rather than if-tree commit b82ededdc872491af61799929b45ad2c39327723 Author: Gregor Bollerhey Date: Wed Oct 19 17:32:48 2011 +0200 Very basic documentation on how to use boxmaker commit 0ad49ccf93fe4367fe5e4e10f98aad9303587ad9 Author: Gregor Bollerhey Date: Wed Oct 19 16:39:35 2011 +0200 Update: Automatic mass calculation Also: - Shortcut for every option commit 39cbae38d744fa579f22dba076be3334081b2dc3 Author: Gregor Bollerhey Date: Wed Oct 19 13:30:16 2011 +0200 Update: Unit handling - temp might have a dimension now - Leading "!" skips processing by tool 'units' so already converted numbers can be used without specifying 'autodim off' resp. '-autodim'. - Scaling factor in unit-dictionary is float now, proper typing is GOOD. commit 751d7f1c304a7154fd9d5204d25d894f4d292c74 Author: Gregor Bollerhey Date: Wed Oct 19 13:18:08 2011 +0200 Update: Shortcuts for common Parameters commit 32bc47763858bb01bae893adc080489b7158d448 Author: Gregor Bollerhey Date: Mon Oct 17 14:08:19 2011 +0200 Update: autorotate Not tested yet, but it seems like it does *something* (means: paths etc. are correctly handled). commit 0c83d84852b4a347a220986437c3548d9f81ee7b Author: Gregor Bollerhey Date: Mon Oct 17 13:03:12 2011 +0200 Less ugly advanced version - Class (struct) based global options - Minor bugfixes - Feature: Cubic cell - Feature: Skip unit conversion - Feature: Options via cmd line - Feature: More settings TODO: - Output postprocessing (INPUTCONVs) - Auto-rotate to minimum BBox - Documentation commit 5735ba6c7b20b862fee585bf210001884dd525f6 Author: Gregor Bollerhey Date: Wed Oct 12 18:14:13 2011 +0200 Ugly base version of boxmaker.py TODO: - stability fixes - command parameters - bbox optimization - default parameters commit 54088ade157ccd5da09d83809d019879eb18bca1 Author: Frederik Heber Date: Thu Oct 13 12:51:04 2011 +0200 Added first Reaction named CalculateCellVolumeAction. - this sets the internal result to the volume of the current domain. - the result is return, when the wrapper function is called in python. - added regression tests Python/ReturnValueActions and Analysis/CalculateCellVolume. commit 6aa48530ab21a608d169e9bd28ff31e047c23a15 Author: Frederik Heber Date: Thu Oct 13 12:49:22 2011 +0200 Actions exported to Python may contain a returntype. - returntype is set in .def file, if none given void is assumed. commit 15408592ea2fab27dfbc10cc6f5b99cae3244c89 Author: Frederik Heber Date: Thu Oct 13 12:47:12 2011 +0200 Added Reaction as Action with a return value. - this is derived from Calculation, only that it is not a Process but a simpler Action. - A Reaction cannot be undone and sets an internal result. commit 874597dc61c72b0d2831c2aabdfbcb6a2a92fa4f Author: Frederik Heber Date: Thu Oct 13 12:50:36 2011 +0200 FIX: some defines were forgotten to be undefined in Action_impl_python.hpp. commit 9d613feab4e07d3a202706642be753fe3532e1b3 Author: Frederik Heber Date: Mon Oct 10 16:18:16 2011 +0200 FIX: RepeatBoxAction did not use CopyMolecule() but copied by hand. Kudos: Gregor Bollerhey. - this causes trouble with FormatParsers such as Tremolo... who have internally additional information stored. - extended regression tests Domain/RepeatBox with a test of a repeated .data file with "special" element names. Kudos to Gregor Bollerhey for finding this bug. commit f27fa7663d7fbd32d91ed4b31bbb2d9443cd7ba7 Author: Frederik Heber Date: Mon Oct 10 16:17:32 2011 +0200 TESTFIX: Added test whether calling not present command truely fails. - exit code from python is 1. commit cbb32d6cb47d22cd8f7f67d1c9c85099ca08ab67 Author: Frederik Heber Date: Mon Oct 10 16:06:58 2011 +0200 Small cosmetical changes to moltest.py. - We now use Popen to call an external process and check on its return code. If an Action fails with an internal Assertion(134), then the command is still considered as available. We are only interested in failures of the python interpreter. - changed the output a bit. Each Command is now embraced by BEGIN and END, stdout and stderr are given separately but per command. - removed XFAIL from regression test Python/AllActions. commit 3493da80dddd81670d46f553e8f9eee1d6e3e762 Author: Frederik Heber Date: Thu Oct 6 14:12:35 2011 +0200 Gathered default values for each action and wrote regression test that uses moltest.py. - options gathered by script getPossibleOptions.sh in file options.dat. missing.dat contains all currently available action and option tokens for easier retrieval of possible default values. - new regression test Python/AllActions that tests callability/presence of all Actions. This test is so far marked as XFAIL. - Note that default values in options.dat have slightly different format as they are directly stored in ValueStorage by COMMAND() call and do not go through CommandLineParser, e.g. domain is upper now lower diagonal matrix and vectors are space-, note comma-separated. commit 6ca7b9fa2e55525a9e8ae30efd5cf902378adb63 Author: Gregor Bollerhey Date: Thu Oct 6 14:11:53 2011 +0200 Wrote python script to gather all functions in a pyMoleCuilder module and test them. commit 3139b207b75597cf0c7353033c5d2be2cfbcb0ae Author: Frederik Heber Date: Mon Sep 26 15:38:55 2011 +0200 Renamed ActionTrait and ActionTraits. - the specialized Trait contains multiple OptionTraits, hence is now called ActionTrait_s_, where its base class (that just has the OptionTrait for itself) is called ActionTrait. - This caused many changes in other Action related files. commit c20b356f2eadeb43c500eb53ae0f5b79fd0ec9e1 Author: Frederik Heber Date: Mon Sep 26 15:09:24 2011 +0200 Added commented-out stuff for a extra libMolecuilderActionPython.la. - this library would contain each COMMAND() export in a single module and thus speed up the compilation when required. commit 9499532892bd8d49658849069d442402314d3a4b Author: Frederik Heber Date: Mon Sep 26 14:59:25 2011 +0200 pyMoleCuilder now has full functionality. - For each header file there is a COMMAND_stringargs() function defined. - boost python module exports all Action's COMMAND_stringargs() that are present in GlobalListOfActions.hpp. - new source file AllActionPython.hpp is created in Actions/Makefile.am that enlists all the headers. - New implemenations: - Action_impl_python.hpp: defines COMMAND_stringargs() via some boost:: preprocessor magic. - Action_impl_undef.hpp: contains undefs to the Action's .def files. - also docstrings are working, both for module and for each exported function. - so far, all arguments have a (in NODEFAULT case empty) default value. This is because we cannot perform string comparisons with the preprocessor only numeric ones (i.e. NODEFAULT would have to be 0 or alike). - Extracted cleanUp() from builder_init.cpp and placed into own module. - cleanUp() is now also registered atexit() for pyMoleCuilder where it is needed as well. - AddStaticEntitiestoIgnoreList() has likewise been extracted. commit 0712434880db2974e2088075ea714dc43b8900e6 Author: Frederik Heber Date: Mon Sep 26 14:45:13 2011 +0200 Enhanced tiny example to resemble action structure. - Pythontest now also works via a true ActionRegistry along with Actions and "Atrait" and "Otrait". - this was done to understand runtime (glibc corruption) errors in the full pyMoleCuilder module). However, fault was due to forgotten inclusion of CodePatterns library. - In the end, we have an Action that contains the wrapped greet function in a likewise static manner as COMMAND(). commit 88ba1f95ffea4dff3ac2b0232d8c51420c94f222 Author: Frederik Heber Date: Mon Sep 26 14:40:56 2011 +0200 Added Action's COMMAND_stringargs() function call. - also added ValueStorage::setCurrentValueByString() which gets type only via template specialization but whose argument is always of type string. - this allows to call the Action with string arguments only. - We need this for the (lazy) python exporting where no internal classes such as BoxVector are exposed to the python outside. commit ddde10806358ff0435053ab29908ef726307ffa1 Author: Frederik Heber Date: Mon Sep 26 14:40:05 2011 +0200 FIX: In Action's COMMAND() we don't need a params instance. commit 6a2dae6b1981184635d1c474f4ac46456c875e32 Author: Frederik Heber Date: Mon Sep 26 14:34:23 2011 +0200 Corrected indenting in ActionTrait<>s cstor. commit 05736a7a4c0757f4fa2692f61529114df82fbc3a Author: Frederik Heber Date: Mon Sep 26 14:29:05 2011 +0200 Simplified Action's COMMAND() definition a bit. commit d41313dc0509282e66f0868a09e6a611856991a0 Author: Frederik Heber Date: Mon Sep 26 13:16:53 2011 +0200 Added output operators for both ActionTraits and OptionTrait. commit dad802e0e6e39672b0c30ed680b5553146da8906 Author: Frederik Heber Date: Mon Sep 26 13:12:35 2011 +0200 Modified ActionTraits' and OptionTrait's cstor and dstor slightly. - this is mostly debugging stuff and does not change anything. commit 83e90c5ba27374b18c88dac99eccef2300119c69 Author: Frederik Heber Date: Wed Sep 21 20:56:31 2011 +0200 New function ActionRegistry::fillRegistry() fills instead of static instances. - this replaces the static instances of each Action in Action_impl_pre.hpp. - we use a file that has to list all present actions, GlobalListOfActions.hpp, as it is not possible to build such a list with the preprocessor from all include files and use it afterwards, as e.g. the define COMMAND only has a _local_ meaning inside the include but the sequence of actions must be built up from _global_ ones. - Actions/Makefile.am: creates AllActionHeaders.hpp out of this list of present actions. - specialized Actions do not register themselves anymore. commit aee2dabfffde9df5844f0967184afb9f4888bc87 Author: Frederik Heber Date: Mon Sep 26 15:04:21 2011 +0200 Added BUILT_SOURCES as appendable variable in various Makefile.am's. commit cb85f24c65f5b7e2949f048923157232b2968421 Author: Frederik Heber Date: Mon Sep 26 15:11:33 2011 +0200 Removed using namespace MoleCuilder from TxMenuLeaveAction. - due to includes this re-appeared at some other places, too. commit 693a80ce2c6b4945f8d87d19e25048dcc3c12bdf Author: Frederik Heber Date: Wed Sep 21 20:51:12 2011 +0200 Added pyMoleCuilder as python module with single exported function CommandHelp. - this is working so far only for this single Action. - Note that we search high and wide for a memory leak (glibc corruption / double free) caused by the forgotten CodePatterns library (which contains a overwritten new operator by MemDebug). commit a02f78efd40bac7cd313cfb7b23877d1db334b4d Author: Frederik Heber Date: Wed Sep 21 20:48:59 2011 +0200 FIX: Undefined preprocessor macro functions in Action_impl_....hpp. - this allows for multiple inclusion of specific Action headers when one wants to use the COMMAND's. commit d470a6c39e34e4b9b5519bea831d792d49997812 Author: Frederik Heber Date: Wed Sep 21 20:47:18 2011 +0200 Moved regression test on little test module Pythontest into subfolder. - also test is now in own test file .at that is just included in main Python folder. commit b4e6b490cbef1b6934755e6f5c13a7e46602828c Author: Frederik Heber Date: Wed Sep 21 20:45:00 2011 +0200 Added note that we really may use the address of a type_info object. - it is static const, hence always the same address is returned by typeid(). commit 807d91170ae58588000d9d66b2b98bf36218fb73 Author: Frederik Heber Date: Wed Sep 21 20:44:09 2011 +0200 MEMFIX: Virtualized destructors of OptionTrait, ActionTraits and ActionTrait<> templates and specialization. commit b2217903eb4f697a0eb4e0b6bbcc90cd7b9cc750 Author: Frederik Heber Date: Wed Sep 21 20:42:29 2011 +0200 FIX: Removed OptionTrait's copy constructor as there are no pointers in it. - With ActionTraits we need it, with OptionTrait we don't. commit d44d7b99bdaf4f9e06becc21fdd72562f7b27aff Author: Frederik Heber Date: Wed Sep 21 20:40:00 2011 +0200 Dstor of Action now unregisters itself and its Options in Action- and OptionRegistry. commit 2d31e15adb589e255571178413b29360fb148592 Author: Frederik Heber Date: Tue Sep 20 17:44:52 2011 +0200 Python tests are now launched via small script run.in. - this is taken over from project GetSpot, see http://spot.lip6.fr/wiki/GetSpot, such that the test lib does not need to be installed. - Also libPythontest now is just -module and has non standard library name Pythontest. commit 7150854fe66d2de013c8f0b6c46e3a3158927d58 Author: Frederik Heber Date: Tue Sep 20 17:09:29 2011 +0200 Simple boost::python test program added. - we have a function greet() (as featured in the boost::python tutorial) exported into a python module libPythontest.so which is test in a separate regression test for the working function. commit 46bba069f32a5e5d0491f639e519790fe58e7fa3 Author: Frederik Heber Date: Wed Nov 2 04:48:11 2011 +0100 FIX: Removed versioning info from some convenience libraries. commit 42c9e2b8523492429793bb7da6d7003aa6fe86f7 Author: Frederik Heber Date: Wed Nov 2 04:46:07 2011 +0100 FIX: getKeys() and getValues() are now simply internal functions of CheckAgainstAdjacencyFile. - somehow it was not admonished that the templated variants before did access private parts of CheckAgainstAdjacencyFile without being friends. commit 13c969ad686f3d12cdc5bdd93001c93e383c3e24 Author: Frederik Heber Date: Wed Nov 2 04:38:43 2011 +0100 FIX: atominfo::getType() does not care whether element exists. - atoms do temporarily have no element: right after they are created. Hence, one has to deal with the returned pointer being null. - this fixes a bug with the debug variant of molecuildergui crashing when loading a new molecule via WorldInputAction. commit e5cec4e2cb555c7d4508afa2f6296052dcf2e5ee Author: Frederik Heber Date: Wed Nov 2 03:25:00 2011 +0100 Removed macro bnv_have_qt, replaced by pkg-config info. - executables are searched via AC_PATH_PROGS in PATH or the one given via --with-Qt-bin. commit 22db89e82efc438f389cf621bf3caa0c33f6b876 Author: Frederik Heber Date: Wed Nov 2 02:20:28 2011 +0100 Using new version of CodePatterns 1.1.7. - m4 macro ax_codepatterns.m4 now uses flags and libs set by boost macro in test compile. - also now we support boost 1.47. commit bf33793a0d4ea93c1babd21cadd1d7fc70e7b4ad Author: Frederik Heber Date: Fri Nov 4 11:16:36 2011 +0100 Set version to 1.1.6 - Molecuilder library is now 5:2:0. - Codename "ununhexium" (atomic number of a so temporarily called element, as this release is just an intermediate to upcoming 1.2.0 as well) commit 4faa3024da62e20851f88698fbb5ec07a146908c Author: Frederik Heber Date: Wed Oct 26 10:33:46 2011 +0200 FIX: EmptyQtQuery forgot to initialise thisLayout. commit 3b5fcad4499d84f2710a43fa1bb78943cb664f7e Author: Frederik Heber Date: Fri Nov 4 15:15:42 2011 +0100 FIX: joiner, analzer and units lacked appropriate ..._LDFLAGS. - also added _CXXFLAGS (but should change nothing). - fixes bug with elswhere present boost libs. commit 3995764b4b2e69dd6c57f464bcaaf4a0839eb9c2 Author: Frederik Heber Date: Fri Nov 4 11:59:00 2011 +0100 DISTCHECKFIX: LinearAlgebra CodeChecks testsuite fails due to doubly included atlocal. commit 6bdba08a7dca2ce506c7552abbefa9853fb32452 Author: Frederik Heber Date: Fri Nov 4 10:58:04 2011 +0100 DISTCHECKFIX: all .dox files are now given as EXTRA_DIST. - otherwise they are not included in the archive and also the date_dox code check fails. commit d249533a8bc07628856561bbbef1aa20a677cbbc Author: Frederik Heber Date: Fri Nov 4 10:45:27 2011 +0100 DISTCHECKFIX: target unity.cpp has no MemDebug.hpp or config.h. - it is now excluded in the config_h and memdebug code check tests. - also removed ancient Helpers/MemDebug.cpp from unity. commit 262ecc8c14e55d0f7744557f8db358fa4e387df8 Author: Frederik Heber Date: Fri Nov 4 09:07:54 2011 +0100 DISTCHECKFIX: Forgotten .hpp files included. commit c2808e648134d01905b5a680706cb340fb79319f Author: Frederik Heber Date: Fri Oct 28 12:04:40 2011 +0200 FormatParser< xyz >::save() now uses numeric_limits. commit ab26c32fce16265ba7563805bf70265de2b4e3fe Author: Frederik Heber Date: Thu Oct 27 17:19:48 2011 +0200 Moved ThermoStatContainer to folder src/Thermostats. commit 41a467397fe65de7b369f9989fc26e6e18070f2e Author: Frederik Heber Date: Thu Oct 27 17:08:36 2011 +0200 LARGE: config class is now just a tiny container. - this was loooooobg overdue. Config.cpp contained remnants from parsing pcp files and much else. Also fragmentation depended on it. Since refactoring of MoleculeListClass and the fragmentation, we don't need it anymore. - helper functions ParseForParameters(), LoadMolecule() extracted into new module PcpParser_helper. - config class now just contains 4 variables that are generally required (especially IsAngstroem) and they should probably remain with the world. - removed some places where config.hpp was no unnecessarily included. - Moved ConfigFileBuffer.* over to subfolder src/Parser/ where it rather belongs (associated with PcpParser). commit 47d0416c5a62d6d7eb14391e14c7f3f576fb1673 Author: Frederik Heber Date: Thu Oct 27 13:53:58 2011 +0200 HUGE: Removed all calls to Log(), eLog(), replaced by LOG() and ELOG(). - Replaced DoLog(.) && (Log() << Verbose(.) << ... << std::endl) by Log(., ...). - Replaced Log() << Verbose(.) << .. << by Log(., ...) - on multiline used stringstream to generate and message which was finally used in LOG(., output.str()) - there should be no more occurence of Log(). LOG() and ELOG() must be used instead. - Eventually, this will allow for storing all errors and re-printing them on program exit which would be very helpful to ascertain error-free runs for the user. commit 50e4e51ce46632502842371460680414d8693a72 Author: Frederik Heber Date: Thu Oct 27 13:31:25 2011 +0200 Test target installcheck-local now also runs parallel with up to 4 jobs. - especially important for distcheck. commit 862b6aced84cfd7115cc1c86598d01d98e597c01 Author: Frederik Heber Date: Thu Oct 27 11:32:27 2011 +0200 All Actions are timed now, timings are given on exit. - Chronos is used for this. - new function printTiming() called in cleanUp(). commit 004ae78c93125b8c5ed36354e6ccaf507e1cc290 Author: Frederik Heber Date: Thu Nov 3 16:44:19 2011 +0100 FIX: Changes to bnv_have_qt.m4 and boost.m4. - moved search in /opt to very end of list, wherever occurring. /opt is often a network drive and hence fails in case of network outtage. - bnv_have_qt.m4: Moved Libs in test compile to end, gcc 4.6 is picky and we are checking specifically for QtCore, QtGui, and Qt3D libs, not just any. commit bbff92c91e480a376335ee7ed85901c02fc38965 Merge: 7ba268a f11c23f Author: Frederik Heber Date: Thu Nov 3 11:38:31 2011 +0100 Merge branch 'Doxygen_Documentation_Enhancement' into mergeMaster commit f11c23fb087ac6674948e06cc77219f2907614c1 Author: Frederik Heber Date: Thu Nov 3 11:35:53 2011 +0100 Added documentation on how to understand the code and its (maybe) future extensions. commit 1e3265cfdde09115536e60489297dfea655c313f Author: Frederik Heber Date: Thu Aug 26 15:29:33 2010 +0200 Changed userguide a bit. commit 7ba268a58e24918f9b4f28cee1e5b542596e56ca Merge: 13510b7 5837ddd Author: Frederik Heber Date: Thu Nov 3 10:52:29 2011 +0100 Merge branch 'DipoleAngularCorrelation' into mergeMaster Conflicts: src/World.cpp - tiny conflict in World.cpp commit f281c570d3846adae28ef56f504a320da69c7929 Author: Frederik Heber Date: Wed Nov 2 23:39:55 2011 +0100 Added .dox check to LinearAlgebra as well and various other test fixes. - module is now named linearalgebra. - installcheck-local too runs parallel. - check uses AUTOTEST_PATH. - TESTFIX: added missing \date to present .dox files. commit 5837ddd122c04b048b60eb1c43cd324f37cf1945 Author: Frederik Heber Date: Tue Oct 25 17:37:56 2011 +0200 Cosmetical fix to PairCorrelation(). commit c3a70d2e1acd8ae14b6afd834b7b50bae96f66e5 Author: Frederik Heber Date: Thu Oct 13 21:51:31 2011 +0200 Added time-step-zero option to dipole-angular-correlation. - this allows setting t_0 at some later time step than the very first one (and thus from an equilibrated moment in time and not the initial one). - although there is default value, regression tests use time-step-zero with 0. commit 870b4b91fe9f0b1046abb0bc933ec99ffab7aed1 Author: Frederik Heber Date: Thu Oct 13 21:50:52 2011 +0200 Added rejected molecule counting to DipoleAngularCorrelation(). commit a28cc4b8154803677c2110da6e9dfbc65b7bdb0c Author: Frederik Heber Date: Tue Nov 1 20:57:25 2011 +0100 DOCU: Added python as fourth user interface. commit 35a88927d82713a677dde8bd7c3df3ce9e9ba429 Author: Frederik Heber Date: Tue Nov 1 20:56:58 2011 +0100 DOCUFIX: Prefixes all three userinterface labels with userinterfaces-. commit bc341152538d05a33d83d52d16a02336b620b1f9 Author: Frederik Heber Date: Tue Nov 1 20:56:15 2011 +0100 DOCU: Added some important notes in usual mistakes to serialization.dox. commit e6c470ccb1b2c074724b8e513510f5f939adc3af Author: Frederik Heber Date: Mon Oct 31 18:29:04 2011 +0100 Fixing documentation. - removed out-dated documentation. - removed bugs with doxygen. commit 39f4c46f89ae322d0db63df2b97dc6bfb003cfe0 Author: Frederik Heber Date: Mon Oct 31 18:15:52 2011 +0100 Added CodeChecks test on whether each of .dox files contains a valid date stamp. - this is to enforce stating whether information is current or not. commit 5982c5922d9ec80de77b5dbb7184f7cc879c6eac Author: Frederik Heber Date: Mon Oct 31 18:15:21 2011 +0100 FIX: Removed at_local inclusion in nested test scripts and put in into testsuite.at. - this fixes multiple inclusion warnings. commit 750cff3758142eb977ca963eb8ede4200620a15e Author: Frederik Heber Date: Mon Oct 31 18:13:52 2011 +0100 HUGE: Update on documenation. - a general skeleton of the documentation is now in place with all the major components of MoleCuilder explained to some extent. - some information has been transfered from TRAC (e.g. install procecure) into this doxygen documentation where it is general and not specific to the situation at our institute. commit e658783525483171aa12ab81bf75d42b28dba211 Author: Frederik Heber Date: Wed May 18 21:55:05 2011 +0200 Selection is now done inside DipoleAngularCorrelation. - as molecules may change over time it makes more sense to select molecules internally right now. - DipoleAngularCorrelation() now takes Formula instead of std::vector. - also adjusted const'ness of some parameters. commit 505d059b8f5c10ec0e270a2fbd0cbe8462d545d9 Author: Frederik Heber Date: Wed May 11 18:14:56 2011 +0200 DipoleAngularCorrelation: output now contains name _and position_ of first atom of dipole molecule. - TESTFIX: Had to change _values...dat files accordingly. commit 72105aa76e82e63091a7bc60f6846f4866f741ef Author: Frederik Heber Date: Wed May 11 11:59:00 2011 +0200 Verbosity fix: DipoleAngularCorrelation() - info given when ZeroVector and atoms sizes mismatch. commit 99b87a1a736ed1a74a2c329e71072ba1de294522 Author: Frederik Heber Date: Wed May 11 11:57:47 2011 +0200 DipoleAngularCorrelation() can be told not to reset time to old value. - this should save some unnecessary re-creation of bond structure when the method is used by AnalysisDipoleAngularCorrelationAction::performCall(). - new enum ResetWorldTime in analysis_correlation.hpp to make reset statement in call verbose. commit a860a19bf886a884948976987e34a1820dac2d8b Author: Frederik Heber Date: Wed May 11 10:50:45 2011 +0200 TESTFIX: Regression test Analysis/DipoleAngularCorrelation now also checks per time step not over all time steps. - split up zero change (X) and true change (Y) case of the rotating water molecule; otherwise output files get mixed. - removed AT_XFAIL_IF from these tests. commit 13510b793af44e5bc7ff6b3cc7ea35c7ccb86c44 Author: Frederik Heber Date: Thu Oct 27 10:21:32 2011 +0200 Added regression test for setting Psi3Parser parameter reference. commit e5ece417206b4e99cde82d66079cfc947e65c7e7 Author: Frederik Heber Date: Wed Oct 26 18:23:57 2011 +0200 Added operator<< to ValueStorage. - this should ease debugging in case of a "missing" option. commit 41d023ff8dc20a2b26d06e7c4960972918c6e500 Author: Frederik Heber Date: Wed Oct 26 18:22:33 2011 +0200 Renamed SetMpqcParametersAction to SetParserParametersAction and generalized. - now we may set the parameters of basically any parser, so far it's probably just mpqc and pis3. - changed operator<<(FormatParser_Parameters): no output when value is empty string. - changed operator>>(FormatParser_Parameters): Asserts were not really making sure that value_iter and param_iter were readible. - Added regression test on setting psi3 parameters (wfn). commit 19bc7497091ba44d7d2c52ee7ba0f5997f9f291e Author: Frederik Heber Date: Fri Oct 28 17:05:03 2011 +0200 Explained most of the tests. commit 3158e6e7748f2252aa12f1b10e68729ed45ca9fd Author: Frederik Heber Date: Fri Oct 28 11:46:29 2011 +0200 FIX: FIX: broken variable docdir for DX_INIT_DOXYGEN. commit a2b0ce4a8778356724acb2bcd662a1df29a49344 Author: Frederik Heber Date: Wed May 11 10:29:57 2011 +0200 FIX: Filenames are appended with step with fixed width of 4 digits, zero filled. - FIX: step name preparation placed before. commit cda81de72ce7ee445f55ec79bd0c6eb340fc1edd Author: Frederik Heber Date: Wed May 11 10:10:27 2011 +0200 DipoleAngularCorrelation is now calculated per time step not over all time steps combined. - DipoleAngularCorrelation() gets time step to calculate orientation for. - AnalysisDipoleAngularCorrelationAction::performCall() loops over all present time steps and calls DipoleAngularCorrelation() for each. - TESTFIX: Regression tests Analysis/DipoleAngularCorrelation are marked as XFAIL until new tests are installed. commit 9e1709721fb1e279fa7c791bd154ef470bc3d091 Author: Frederik Heber Date: Wed May 11 10:00:14 2011 +0200 AnalysisDipoleAngularCorrelationAction now calculates zero orientation. - this is a preparatory step to get DipoleAngularCorrelation() calculate the orientiation per time step and not over all time steps as it is now. commit bef3b93af4906063eed476be88fb1537ca4a3326 Author: Frederik Heber Date: Wed May 11 09:59:39 2011 +0200 Restructured code in AnalysisDipoleAngularCorrelationAction::performCall(). commit 32568762b5f514a4aeb82ea1a411bfdc1f623cea Author: Frederik Heber Date: Wed May 11 09:54:00 2011 +0200 DipoleAngularCorrelation() - External zero orientation vector may be given. commit 07a47e0c167bba50906b5cc3e9289ec6e7f1c6db Author: Frederik Heber Date: Wed Oct 26 17:02:53 2011 +0200 Replaced enable/disable-hydrogen by internal switch. - changes in Fragmentation, Graph and molecule structures. - switch is now enum HydrogenSaturation that is constant everywhere except in the Actions. FragmentMoleculeAction and DepthFirstSearchAction have new parameter DoSaturation with default value of true. commit 99b0dc7573c545c2d1ab699c79e875df4d992cb9 Author: Frederik Heber Date: Tue Oct 25 14:31:39 2011 +0200 FragmentAction now has instead of path a types parameter. - new output-types parameter, is a vector for giving a list of desired output types similar to SetOutputFormatAction. - TESTFIX: as vector cannot have default value, we had to adapt the two regression tests Fragmentation/FragmentMolecule.. and the fragmentation tests. commit babcc1820497b0340a453fa9b4442f2e06d4da34 Author: Frederik Heber Date: Fri Oct 21 01:12:48 2011 +0200 MoleculeListClass::OutputConfigForListOfFragments() now uses FormatParserStorage. - Fragmentation::FragmentMolecule(): fragments in type mpqc, pcp, and xyz are stored one after the other. - MoleculeListClass::OutputConfigForListOfFragments() expects type and uses FormatParserStorage for writing. commit 09183883c4af7885de0d266ede8f220dc680b30a Author: Frederik Heber Date: Fri Oct 21 01:48:40 2011 +0200 FormatParserStorage now explicitly needs to know which formats to store automatically. - new functions FormatParserStorage::setOutputFormat() for giving this info. - FormatParserStorage::SaveAll() only calls setOstream if the format is desired. - FIX: FormatParser_common::FormatParser_common() forget to initialize saveStream. - FormatParser_common::update() only stores when saveStream is not NULL, i.e. set. - SetOutputFormatsAction now uses add and setOutputFormat(). - InputAction also adds the format of the input file. Note that this is needed to allow various output formats for BondFragments in Fragmentation without these formats eventually also being used for the writing of the main input file. commit 0a7fad383c9fd7d10f25e6da08f4bf4a9f244cc6 Author: Frederik Heber Date: Wed May 11 09:46:24 2011 +0200 Refactored part of code in DipoleAngularCorrelation into new method CalculateZeroAngularDipole(). commit 1cc6612f1b1334040e49d3ffce07d7472926e3f1 Author: Frederik Heber Date: Wed May 11 09:37:35 2011 +0200 Refactored part of DipoleAngularCorrelation into method getTrajectoryBounds(). commit be0c61a73bfd606125fbc0307b518e335d3a1ce1 Author: Frederik Heber Date: Wed May 11 09:42:43 2011 +0200 FIX: DipoleAngularCorrelation() - ZeroVector is now map over atoms, not vector over molecules. - Molecules are not consistent over trajectories, atoms however are. - hence, we store the ZeroVector for each atom of a molecule, not per molecule. commit 4b8630316b58cd0e54f594244af59c4f9560b633 Author: Frederik Heber Date: Sat Feb 19 01:09:43 2011 +0100 World::setTime() now updates bond structure of system and related changes to DipoleAngularCorrelation. - extended regression test Analysis/DipoleAngularCorrelation with xyz example whose bond structure is updated per time step. - FIX: DepthFirstSearchAnalysis::operator() did not reset bonds to unused. - FIX: DipoleAngularCorrelationAction has to work on atoms not molecules as the latter are subject to changes due to changing bond structure. - FIX: DipoleAngularCorrelation() re-calculates current set of molecules from the select atoms and stores first atom in values file, not molecule name. commit 4fc828b58deb25fc433599e0a2567df1f7b71101 Author: Frederik Heber Date: Wed Feb 16 13:56:48 2011 +0100 DipoleAngularCorrelation working with multi-timestep PDBs with CONECT entries. - new regression test Analysis/DipolarAngularCorrelation: testing rotated water dipole. commit df8759e00f2b2d82d6334340d4d0ecd763ec575b Author: Frederik Heber Date: Fri Feb 11 23:52:53 2011 +0100 Renamed test dirs Analysis/AngularDipoleCorrelation-... ->DipoleCorrelation-... commit 208237bbbc57a8a1a39e9eba2b8f9ccd181228d8 Author: Frederik Heber Date: Fri Feb 11 23:28:51 2011 +0100 Renamed DipoleAngularCorrelation(Action) -> DipoleCorrelation(Action) and new DipoleAngularCorrelation(Action). - DipoleCorrelation performs dipole orientation calculation. - DipoleAngularCorrelation calculates the change in dipole orienation over time. - new action DipoleAngularCorrelationAction commit 3a9091f060344cff8516d05b05d191d5b46b5131 Author: Frederik Heber Date: Fri Oct 21 01:11:57 2011 +0200 TESTFIX: Fragmentation tests used FRAGMENTPREFIX instead of FILENAME. - also enhanced test by checking for presence of pcp, mpqc, and xyz files in correct number. commit 851be8001d3ee00fa3ac2cfd8ae65a67a8bced04 Author: Frederik Heber Date: Thu Oct 20 13:05:14 2011 +0200 Moved functions that deal with adaptivity from fragmentation_helpers into AdaptivityMap. - Adapted Fragmentation::CheckOrderAtSite() a bit as maps of adaptive values are now all encapsulated in AdaptivityMap. commit 730d7a4efc3a2396723036e90420b93ff9ed3b03 Author: Frederik Heber Date: Thu Oct 20 12:34:17 2011 +0200 New class AdaptivityMap and moved some functions from fragmentation_helpers into it. commit 75363b3f88c851b63d6e61e7ac05f88177419a9c Author: Frederik Heber Date: Thu Oct 20 12:17:10 2011 +0200 Extracted functions from fragmentation_helpers and placed them in KeySet or Graph class. - KeySet: ScanBufferIntoKeySet() - Graph: ParseKeySetFile(), StoreKeySetFile(), ParseTEFactorsFile(), StoreTEFactorsFile(), GraphToIndexedKeySet() commit 42127c3196b85e2b52749471ca9014640269b9fb Author: Frederik Heber Date: Thu Oct 20 11:58:57 2011 +0200 Extracted definition of MoleculeListClass and put into own header module. commit f7fd17250d78b009d453e4c413831fa516bb4971 Author: Frederik Heber Date: Thu Oct 20 11:58:15 2011 +0200 FIX: Removed remnant definition of molecule::StoreForcesFile(). - function has been shifted over to MoleculeListClass some time ago. commit d3abb155bcc85709402bb9d4f61ee6386c074874 Author: Frederik Heber Date: Thu Oct 20 11:32:35 2011 +0200 Extracted MoleculeLeafClass into own module. - removed some unnecessary includes in moleculelist.cpp. commit ba94c53b55b13c65d4a227ddc75d8d7e657d9670 Author: Frederik Heber Date: Thu Oct 20 11:14:56 2011 +0200 Removed modules graph.[ch]pp. - typedef of KeyStack is placed in fragmentation_helpers. commit dadc744c2f6ef8c2075a7e5a791c33b711bd6e20 Author: Frederik Heber Date: Thu Oct 20 11:02:58 2011 +0200 Extracted Graph (map of KeySets) into own class from graph.hpp. - Placed InsertGraphIntoGraph() as its member function. commit f0674ad457e26229a9fc919b6f3659591649bf06 Author: Frederik Heber Date: Thu Oct 20 10:17:18 2011 +0200 Extracted KeySet from graph.hpp and made into distinct class. - member function operator<() replaces former KeyCompare struct. commit 246e135b36a823fc68a5447dc711b024f2d49ce7 Author: Frederik Heber Date: Wed Oct 19 19:07:28 2011 +0200 Placed FragmentMolecule, FragmentBOSSANOVA and subfunctions into own class Fragmentation. commit 212c179a20d30dfd1c8d9f011f4617d5bc87f1fc Author: Frederik Heber Date: Tue Oct 18 15:16:51 2011 +0200 Placed all functions related to BondsPerSPList into own class BondsPerShortestPath. commit d0b375b2180798e3740178ea430700a3329073f6 Author: Frederik Heber Date: Tue Oct 18 15:28:37 2011 +0200 Removed ShortestPathList. - there have been references in the code that ShortestPathList is probably obsolete meanwhile (seemingly it is). commit f67817f7834dceb2a5c0a857fa17b2481b42a01b Author: Frederik Heber Date: Tue Oct 18 14:26:01 2011 +0200 Extracted power set generation into own class PowerSetGenerator. commit 23fb721d34ba720a6277c697c046193f6203fb09 Author: Frederik Heber Date: Tue Oct 18 14:02:04 2011 +0200 Encapsulated UniqueFragments::Root with getter/setter. commit f6d1d0176076be85059fb287303c6172d2cca0a6 Author: Frederik Heber Date: Tue Oct 18 13:56:39 2011 +0200 Made some member variable of UniqueFragments private. commit a03d25a95438c62d1f4eccba93c94bb3f6281096 Author: Frederik Heber Date: Tue Oct 18 13:53:21 2011 +0200 Placed all routines working on UniqueFragments struct inside this class. - changed struct to class. commit d9a032dc6846bb5d2cf9a7b5a184c2a68e344dcd Author: Frederik Heber Date: Tue Oct 18 13:52:27 2011 +0200 Initiated own conveniance library for folder src/Fragmentation. - Makefile.am included in src/Makefile.am, library included in UIElements/Makefile.am. commit ba182315c666d68dd36bb0ef46e7f304d4644105 Author: Frederik Heber Date: Tue Oct 18 11:12:25 2011 +0200 Moved all helpers fragmentation functions into folder src/Fragmentation. commit 70879889df9c3fa9ecec560fe07215db0e872f09 Author: Frederik Heber Date: Tue Oct 18 10:50:19 2011 +0200 FIX: removed -version-info from libMolecuilderGraph. - it's just a convenience library that have no versioning. commit ec87e45589461e444811eea2933d639a2f8b3e6a Author: Frederik Heber Date: Mon Oct 17 17:23:42 2011 +0200 Rewrite of CheckAgainstAdjacencyFile. - we now construct two multimaps -- one from file, the other from World's selected atoms -- and compare these two. - added unit test on the class. commit 5fd0f4d49b0461d32ede06c7157852e0fb66eb04 Author: Frederik Heber Date: Tue Oct 25 11:48:21 2011 +0200 Set version to 1.1.5 - Molecuilder library is now 5:1:0. - Codename "Melli Beese" (first female German aviator, her flight license number is 115). commit f9495313044c5d59ac825fc0648e8ca03265262e Author: Frederik Heber Date: Tue Oct 25 11:47:01 2011 +0200 DISTCHECKFIX: regression test Fragmentations/Joining required writable fragment dirs. commit 360c8bbc74f8b9ba85e29afb3769876f4b7fd8b1 Merge: fa9d1d1 752bb4e Author: Frederik Heber Date: Fri Oct 21 00:40:59 2011 +0200 Merge branch 'Adding_Psi3Parser' into stable Conflicts: src/Parser/FormatParser.hpp src/Parser/unittests/ParserTremoloUnitTest.cpp Issues: - Element and periodentafel have been moved to folder src/Element. commit fa9d1d1f9bdda596edc780e18f57c4ea62847227 Author: Frederik Heber Date: Thu Oct 20 23:29:24 2011 +0200 FIX: CreateAdjacencyAction now uses BondGraph::CreateAdjacency. commit 539f3262192fc147f35ffbe84d178021484129ba Author: Frederik Heber Date: Thu Oct 20 15:19:21 2011 +0200 Enhanced BondGraph::CreateAdjacency() a bit. commit 9317be0fb11b31ce2211407310d3957055993f16 Author: Frederik Heber Date: Thu Oct 20 15:18:47 2011 +0200 Replaced molecule::atomVector by World::AtomComposite everywhere. commit 02504849fae5321dbdba4e3e930f7a9dda6edd06 Author: Frederik Heber Date: Thu Oct 20 14:39:01 2011 +0200 Enhanced Box::periodicDistanceSquared() by an internal_explode(). - internal_explode() works on an static internal VECTORSET(list) such that there is no need for repeated memory allocation/deallocation for said list. commit 93d78e8de4fa69e04316803de231b7406107b2d9 Author: Frederik Heber Date: Thu Oct 20 10:49:51 2011 +0200 TEST: Added missing atom keyword to regression tests on selection of cuboid and sphere. commit a8b9136123589e07842ffdaf5264dce9ddfeae73 Merge: 9c27b0a 6a51087 Author: Frederik Heber Date: Thu Oct 20 10:21:40 2011 +0200 Merge branch 'Fix_Test-Fragmentation_Header' into stable commit 6a5108701db116011bdc260e154e48610a36cc4a Author: Frederik Heber Date: Thu Oct 20 10:20:53 2011 +0200 FIX: Header name of Fragmentations test was wrong. commit 9c27b0a005883e62a6fe86a9c2d191e872d16452 Merge: 45f835e b1ac7aa Author: Frederik Heber Date: Thu Oct 20 09:04:50 2011 +0200 Merge branch 'MatrixContainer_Serialization_rewrite' into stable commit b1ac7aab284bf1319974b1e2e835aba2d14405c8 Author: Frederik Heber Date: Mon Sep 19 17:16:12 2011 +0200 Added Undo/Redo capabilities to BondLengthTableAction. - thanks to serialization of BondGraph. commit 8297610a06ece879892f92f6ac27321f60251965 Author: Frederik Heber Date: Mon Sep 19 17:15:36 2011 +0200 New function BondGraph::CleanupBondLengthTable(). - allows for removing present BondLengthMatrix. commit 1ac24b80f6b3f8aba2fbfb1c14a5d63c284fbc40 Author: Frederik Heber Date: Fri Sep 16 19:45:13 2011 +0200 Added unit test function SerializationTest to BondGraphUnitTest. commit f007a17a35c1dd25022c6a180a76cf04611c9546 Author: Frederik Heber Date: Fri Sep 16 19:37:27 2011 +0200 Added serialization capability to class BondGraph. - note that we do not serialize BondThreshold in BondGraph, is nonsense for a static member anyway. - added private default constructor for BondGraph. commit 9b6663a9104435e3330a5789ca82ba9e6f3aa7be Author: Frederik Heber Date: Fri Sep 16 19:47:32 2011 +0200 Added operator==() to BondGraph. - also added new unit test function EqualityTest to BondGraphUnitTest. commit 2d5fee5a517443fd00a0fb14e2ac95c440400ff6 Author: Frederik Heber Date: Fri Sep 16 19:29:04 2011 +0200 Added unit test functions SerializationTest for KeySetsContainer and MatrixContainer. commit 942906bb18ea082db1ef88cc4736b482eb87e71a Author: Frederik Heber Date: Tue Sep 20 12:10:14 2011 +0200 Added serialize() template functions to MatrixContainer and KeySetsContainer. - also we now require CodePatterns 1.1.6 due to valarray inclusion before MemDebug. commit 752bb4eebc964734dfa22c23ba3e97bd95f58501 Author: Frederik Heber Date: Thu Oct 6 16:05:03 2011 +0200 Added regression test Parser/Psi3. - this is heavily inspired from Parser/Mpqc. commit d640ea4f513e93f75000fdadbe0789cf1671a383 Author: Frederik Heber Date: Thu Oct 6 15:55:45 2011 +0200 Implemented Psi3Parser::save(). - also we now have working unit test on this functionality. commit 9011c1ce1292bb6459bc13092fe0c8ad098f64ec Author: Frederik Heber Date: Thu Oct 6 15:55:16 2011 +0200 Added atom::OutputPsi3Line() to output a Psi3 conforming geometry line. commit 120a864188be57481b4c722362c9ea2925039878 Author: Frederik Heber Date: Thu Oct 6 15:54:34 2011 +0200 TESTFIX: Added check whether streams are empty to ParserMpqcUnitTest::writeMpqcTest(). commit 1b145f245526521e82fb04541ca99bbfce500a42 Author: Frederik Heber Date: Fri Sep 16 19:06:19 2011 +0200 Added operator==() to KeySetsContainer and MatrixContainer. - also added unit test functions for both. commit 9758f70c8acad564988f204ebc13d19c82b5fa37 Author: Frederik Heber Date: Fri Sep 16 18:24:18 2011 +0200 Removed C arrays in KeySetsContainer and MatrixContainer. - replaced by std::vector<>s. - transition is so far very minimal, external (range) counters are still present. - extracted allocation of memory into own block in MatrixContainer::parseMatrix(). commit a9b86da232c3a8beead3fa86a30c4841166788f7 Author: Frederik Heber Date: Thu Sep 15 18:02:17 2011 +0200 Split up modules parser.[ch]pp into one module per class. - fixed inclusion of parser.hpp in some other files. - for the moment we have to use libMolecuilderUI for joiner and analyzer. - Removed inline definition from FixedDigitNumber(). commit c170915bbc3f208c828f605923829245c6a832b9 Author: Frederik Heber Date: Thu Oct 6 15:54:10 2011 +0200 Added convenience function Psi3Parser_Parameters::getReferenceName(). commit a67cf089d410daed85c0fd273c385b1120390f24 Author: Frederik Heber Date: Thu Oct 6 15:52:49 2011 +0200 Renamed Psi3Parser_Parameters::multipParam to ::multiplicityParam. commit 032f31cf80e8ee3e35032df0bfd39da32b7db018 Author: Frederik Heber Date: Thu Oct 6 13:15:56 2011 +0200 Implemented Psi3Parser::load(). - also we now have working unit test on this functionality. commit 7f570c6517b39d5c867f97f951a6d8b7300e1cdb Author: Frederik Heber Date: Thu Oct 6 13:12:35 2011 +0200 Moved operator<<() and operator>>() from Mpqc/Psi3Parser_Parameters into FormatParser_Parameters. - setting and getting of values are generalized. commit f758dd8abf6c4577aedad2b0a76999a202061c35 Author: Frederik Heber Date: Wed Oct 5 17:46:00 2011 +0200 ParserPsi3UnitTest::ParameterSetterTest() is working. commit 154a459603c8dfe4f80902f3317a2b16ae570d5d Author: Frederik Heber Date: Wed Oct 5 17:17:27 2011 +0200 ParserPsi3UnitTest::ParameterCloneTest() is working. commit 1bef077d3656c91b027c4cf35ca7eb3e79969644 Author: Frederik Heber Date: Wed Oct 5 10:52:25 2011 +0200 Added first working version of a Psi3Parser. - is so far mostly copy&paste from MpqcParser. - important parameters all are in (including valid ranges). - also added unit tests. commit ee50c1deef0fe012d0eaf1e68d36c5bb53c0b663 Author: Frederik Heber Date: Fri Sep 30 18:20:34 2011 +0200 Complete rewrite of MpqcParser_Parameters to incorporate new Parameter(Storage) structure. - FormatParser_Parameters now contains a ParameterStorage instance which contains all parameters and is easy to clone. - MpqcParser_Parameters is basically just an Init() function that fills this storage for the specific case of the FormatParser. - additionally, there are some convenience functions, enums and maps which contains strings and make setting and getting parameters more easy. - adapted MpqcParser. - adapted Unit test for MpqcParser accordingly: - no more tests on type - TESTFIX: regression test Parser/Mpqc/post/empty.in was CLHF instead of default MBPT2. As the cloning is now working flawlessly, this has been fixed. commit 89a67feeca325baa0a621159f142173ffe172e6d Author: Frederik Heber Date: Fri Sep 30 18:19:34 2011 +0200 Added StringParameter as ContinuousParameter as string do not have any sensible valid range. - this does not inherit any StringValue but implements ValueInterface right away. - also added unit test. commit c0da07019a983e8a4d1b525a29d74725a5c59bf2 Author: Frederik Heber Date: Fri Sep 30 18:02:47 2011 +0200 Added constructor that set value to ContinuousParameter and DiscreteParameter. commit ec0acc0fca5519d83e2d28d3453c58ad0e82b4e2 Author: Frederik Heber Date: Fri Sep 30 15:00:15 2011 +0200 Added ParameterStorage which is a Registry for Parameter instances. - also added unit test. commit 6b522838f6543ee1ab24529fca07826520e8de92 Author: Frederik Heber Date: Tue Oct 4 10:35:42 2011 +0200 Added operator==() to Continuous- and DiscreteParameter classes. - added comparator function for both Parameter types. - added unit tests on these. commit 39fa96414c2fb9b7b844fefc27eef74da86fe2ac Author: Frederik Heber Date: Tue Oct 4 10:34:41 2011 +0200 Added variable name and function getName() to interface Parameter. - a Parameter always must have a name (cstors without params are private). - this is preparatory for storage inside a Registry. - adapted Continuous- and DiscreteParameter's cstors accordingly, pass on to Parameter's cstor. commit c4afd1ada21b7e8c7c09cb2144a757477ed4b7f4 Author: Frederik Heber Date: Fri Sep 30 14:29:13 2011 +0200 Added Continuous- and DiscreteParameter classes. - new interface class Parameter which is a clonable ValueInterface. - Continuous- and DiscreteParameter implement the clone() function for Continuous- and DiscreteValue respectively. - also added unit tests on each clone function. commit 5f61dde6d65664e1c8372220d4cb8bcc04b686d1 Author: Frederik Heber Date: Mon Sep 12 11:03:09 2011 +0200 Removed usage of namespace std in module parser.[ch]pp. commit 3613a21865200b0e605c9c0b4a60e523f04b1811 Author: Frederik Heber Date: Mon Sep 19 16:44:45 2011 +0200 FIX: periodentafel::LoadPeriodentafel() did not load color db from path. commit 4ae823cec9aee17aaa21ae3a9dde58110c0db527 Author: Frederik Heber Date: Mon Sep 19 16:43:55 2011 +0200 periodentafel may or may not Load internal databases in its cstor. - loading extracted into private ScanPeriodentafel() function. commit 9d4ff35ec4a64e47b992434a7cedc91dad9839ec Author: Frederik Heber Date: Tue Sep 20 11:40:55 2011 +0200 Reduced library dependencies of RandomNumbers and BoxUnitTest. commit 592be9a388decc9a41c3507b7e5f23289522e8f5 Author: Frederik Heber Date: Mon Sep 19 17:29:46 2011 +0200 Moved unitests on Element... into subfolder src/Element/unittests. - new Makefile is included in src/unitests/Makefile.am. commit 3bdb6de29d0b7776bda5bfd425ac0a815e8a8d88 Author: Frederik Heber Date: Fri Sep 16 12:07:33 2011 +0200 Moved all stuff related to elements into own subfolder and has its own convenience library. - this induced massive changes in includes in other files. - we adapted PeriodentafelUnitTest to not get instance from world, but we create it ourselves. - also moved all .db files related to elements into subfolder Element/. commit 2fadb6f6487d66855d2a973ab3e063aa3e0af5b6 Author: Frederik Heber Date: Fri Sep 16 12:11:22 2011 +0200 Helpers now reside in own convenience library. - this allows for stricter dependencies for joiner and analyzer. commit dd9d69bdbc669c5669e64c225c4cde9454b3be33 Author: Frederik Heber Date: Thu Sep 15 18:03:07 2011 +0200 Prefixed double inclusion-preventing defines in header files in Helpers/ with HELPERS_. - this avoids name conflicts with other defs.hpp and helpers.hpp commit 9b5a2c623129c569571d4a77eabff8bb2bc84231 Author: Frederik Heber Date: Mon Sep 19 17:44:11 2011 +0200 Moved analysis modules into subfolder Analysis along with its unit tests. - new Makefiles are included in src/Makefile.am and src/unittests/Makefile.am. commit 498dddb270b5a81a0dc413c9707b1fd0ba8ff7fb Author: Frederik Heber Date: Fri Sep 30 14:26:44 2011 +0200 Added operator==() and operator!=() to Continuous- and DiscreteValue. - ValueInterface is now inherited virtually. - this is preparatory for class Parameter which is a clonable ...Value. - we need comparators for the unit tests on that. - unit test added for comparators. commit 84e752ece4991982e2abc41c173b1a6d98ab98b0 Author: Frederik Heber Date: Fri Sep 30 11:40:49 2011 +0200 Moved Continuous- and DiscreteValue into subfolder Parameters. - this folder is to contain all stuff related to internal parameters of the parsers. commit a7d753240301a775068e9e813720c7f0c9744b03 Author: Frederik Heber Date: Fri Sep 30 11:32:43 2011 +0200 Extended DiscreteValue to ContinuousValue and added ValueInterface for both. - new template class ContinuousValue representing a continous value with a valid range. - in order to store both DiscreteValue and ContinuousValue as parameters, both have a common interface ValueInterface that works in string only. - both classes have extensive unit tests. commit 3308b607408a811d157f5645f1d4a94e5482ebd3 Author: Frederik Heber Date: Thu Sep 29 13:03:29 2011 +0200 FIX: 3 out of 4 unit tests have not been told to throw AssertException instead of abort. commit e09d671ae5398d72cd8e8524d71f9f9b44e6b4d6 Author: Frederik Heber Date: Thu Sep 29 09:58:30 2011 +0200 Added class DiscreteValue that contains enums. - class has extensive unit test. - this should replace enums in MpqcParser_Parameters. commit d3d6c66c9874b31665d602a9fb2803e8c7fabdb3 Author: Frederik Heber Date: Wed Sep 28 14:58:10 2011 +0200 Added templated InvertMap function to ease MpqcParser_Parameters::Init(). commit 765f16856478316e039b16a1098e4f2a6bb42332 Author: Frederik Heber Date: Tue Sep 27 21:04:36 2011 +0200 Huge Refactoring of FormatParserStorage and all FormatParser's. FormatParser: - FormatParser is now a template, specialized by enum ParserTypes. - new struct FormatParserTrait is as well a template of same type, containing parser-specific information in static entities. - all FormatParsers are now specializations of this FormatParser. - all Parsers can be accessed in a unified manner, given in the new class FormatParserInterface. - common functions are placed in FormatParser_common.hpp as one cannot partially specialize a function class. - some boost preprocessor magic is used in ParserTypes and FormatParserTraits to define the template specialization or to create the ParserTypes enumeration. FormatParserStorage: - We construct all lookup tables and alikes via boost preprocessor magic from a list of all available parser (enums). - we use the templated getParser() and addParser() functions to serve parsers to the outside. Instances are as usual created only once. Tests: - tests only had to be changed because of the "renaming" of the Parsers. commit 9a6b76ea7056096d32eb9b5d2f5a438af7e0f720 Author: Frederik Heber Date: Tue Sep 27 12:38:50 2011 +0200 Refactored enumeration ParserTypes into extra module. commit ebb87c7a55e63dedb418fb7cf9a03772ada9111e Author: Frederik Heber Date: Tue Sep 27 12:38:12 2011 +0200 FIX: Added check whether suffix belongs to well-defined parser type. commit 6d0f058e7c5c56b22245c79b218fae3eadf5b161 Author: Frederik Heber Date: Tue Sep 27 11:59:04 2011 +0200 Removed all FormatParserStorage::get() and ::set(). - we now call directly the template getParser<>(), setParser<>() versions in the few places needed. - simplified ::load() and ::save() a lot by using getTypeFromSuffix() instead of the ugly if sequence. commit e114e3248317a8dd940a02e562b964986a19cba6 Author: Frederik Heber Date: Tue Sep 27 11:34:19 2011 +0200 FormatParserStorage::add...() and ::get...() now use internally the templated functions. commit db67ea17aa551d3049097b9c184e75073c2fa662 Author: Frederik Heber Date: Tue Sep 27 10:32:36 2011 +0200 Added template getParser/setParser to FormatParserStorage. - specialized templated getParser/setParser in FormatParserStorage will soon replace all the add..() and get...() functions. commit 629e436dfaae8a6f744563906c2fb347afa4a696 Author: Frederik Heber Date: Mon Sep 19 17:33:51 2011 +0200 Moved unitests on BondGraph into subfolder src/Graph/unittests. - new Makefile is included in src/unitests/Makefile.am. commit 45f835e8c203e278cf19fe6699144297ddcc29a7 Author: Frederik Heber Date: Fri Oct 14 14:10:02 2011 +0200 Added Undo/Redo capabilities to RepeatBoxAction. - adapted regression tests. commit 34fbb3fde7c90f235a86b15ee32ef575800bb53f Author: Frederik Heber Date: Fri Oct 14 14:09:30 2011 +0200 FIX: CopyAction did not simply use removeAtomsinMolecule(). commit cbfb9a5a855848ef4183265a6f39366c22d0c5df Author: Frederik Heber Date: Wed Sep 14 18:12:12 2011 +0200 Added Undo/Redo capabilities to ScaleBoxAction. - adapted regression tests. commit 7b4a290b3d37b54a794d7dc819b69614c3c9a67f Author: Frederik Heber Date: Wed Sep 14 18:00:31 2011 +0200 Added Undo/Redo capabilities to ChangeBoxAction. - removed XFAIL from regression tests. commit de7d1dba7824fa30f6db19bd9e5951529efb0758 Author: Frederik Heber Date: Wed Sep 14 17:58:15 2011 +0200 Added Undo/Redo capabilities to CenterOnEdgeAction. - adapted regression test. commit 23526ca91bfbf2679afc5840c9ee7c434447dce7 Author: Frederik Heber Date: Wed Sep 14 17:46:05 2011 +0200 Added Undo/Redo capabilities to CenterInBoxAction. - adapted regression test. commit e670e4be73c7724177f5fef761653d7f8432d689 Author: Frederik Heber Date: Wed Sep 14 17:25:14 2011 +0200 Added Undo/Redo capabilities to BoundInBoxAction. - also added regression test. commit 9cd6bf995419cdfd5a5058be82ebeb15acdb539c Author: Frederik Heber Date: Mon Sep 12 11:07:45 2011 +0200 Added Undo/Redo capabilities to AddEmptyBoundaryAction. - adapted regression tests. commit ce133f70502bb6727370591a8ac8595935e943e1 Author: Frederik Heber Date: Wed Oct 12 16:29:04 2011 +0200 Initial commit for enhancing doxygen documentation. - added .dox types to FILE_TYPES in Doxyfile. - added folders documentation to both src/ and LinearAlgebra/src. - added some preliminary files to both which should be filled. - the idea is to have all documentation that is not associable to a specific class (e.g. serialization) in an extra file. - also we should introduce groups and generally order and enhance documentation. commit 0b004b9c4dd37a728f061baad5c2608f74225c66 Author: Frederik Heber Date: Mon Sep 19 17:49:27 2011 +0200 Moved all unittests on Tesselation into subfolder Tesselation/unittests. - new Makefile.am is included in src/unittests/Makefile.am. commit d127c80ca46c99e6f56f7584ee0691672287c486 Author: Frederik Heber Date: Thu Sep 15 16:51:45 2011 +0200 Moved modules related to Tesselation into own source subfolder. - This required quite a lot of changes in includes. commit feb7dfc315521e9dc2c1caf69c64722e14330c18 Author: Frederik Heber Date: Fri Sep 16 18:55:27 2011 +0200 Added unittests to Fragmentation subfolder. - added empty tests for KeySetsContainer and MatrixContainer. commit bc28b0f3f8149d6034a044085ee96722cb9a75e3 Author: Frederik Heber Date: Thu Sep 15 16:43:32 2011 +0200 Moved modules associated with fragmentation into source subfolder Fragmentation. commit 878044f2802b7b4799a56748e65367ee5b94e541 Author: Frederik Heber Date: Thu Oct 13 20:26:44 2011 +0200 Added (simple) regression tests for joiner and analyzer for heptan. - this is preparatory for rewrite of MatrixContainer upon which both rely. commit 88f62988b19f6b6b102c0be34eb40d8e219b8414 Author: Frederik Heber Date: Thu Sep 15 15:27:16 2011 +0200 Added initial testset of files for regression test on joiner. commit a8b10ae6556ba2f63b2925e9a9fecdaefaed1d93 Author: Frederik Heber Date: Fri Sep 16 12:11:59 2011 +0200 FIX: Shifted ANALYSIS... in src/Makefile.am to alphabetical ordering. commit f17b5fdb567912c8c5f01b11c6ce2abb2240431c Author: Frederik Heber Date: Thu Sep 15 18:04:31 2011 +0200 FIX: FormatParser does not depend on parser.hpp. commit 5930bc9d068e2a8cc5f19f5538b7f1a26949ef23 Author: Frederik Heber Date: Thu Sep 15 18:03:59 2011 +0200 FIX: AtomIdDescriptor just needs types.hpp include. commit 2329be5e074c3d04bef8d010b88f72b525e01901 Author: Frederik Heber Date: Mon Sep 12 11:01:53 2011 +0200 FIX: Inclusion of Box.hpp is not required in AtomCommandLineQuery. commit 61ff0550acb166bb41ba1ba619e3778004377a74 Author: Frederik Heber Date: Mon Sep 19 16:46:28 2011 +0200 FIX: ElementDbAction uses CleanupPeriodentafel() instead of deleting the instance. commit ce7fdce7330c2c978a3bf964316aa2dda1dcd1e3 Author: Frederik Heber Date: Fri Sep 9 20:42:38 2011 +0200 HUGE: All Action-related codes resides now in namespace MoleCuilder. - removed all namespace std in Actions..., replaced by MoleCuilder. commit e0f8c8e2730498c806c8d1900d0c5e3189db8e51 Author: Frederik Heber Date: Fri Oct 7 13:01:56 2011 +0200 Set version to 1.1.4. - FIX: Removed AC_SUBST for LinearAlgebra version. - Codename "Jiroemon Kimura" (with currently 114 years one of the oldest people ever and still kicking). commit 7ff53fd8c0022543fcd10df1c914fc53da585a40 Author: Frederik Heber Date: Thu Oct 13 11:20:44 2011 +0200 DISTCHECKFIX: moc_*.cpp and ui_*.h files added to MOSTLYCLEANFILES. commit bcedf7cc05d257a6654f6aca74ed533f01f2dec1 Author: Frederik Heber Date: Wed Oct 12 16:24:26 2011 +0200 DISTCHECKFIX: Added Qt's .ui and .ui.h files to nobase_..._HEADERS such that they are distributed, too. commit 6016320a5194ab36544ea47ed7dceac6cb61f82e Author: Frederik Heber Date: Wed Oct 12 16:24:07 2011 +0200 DISTCHECKFIX: Added missing m4-files to EXTRA_DIST in Makefile.am. commit c074cc5fab45d02fbfcd8b94007c09ae41d6209e Author: Frederik Heber Date: Mon Sep 12 10:59:19 2011 +0200 LinearAlgebra version is now 1.0.3. - Library version is now 3:0:0, API version is 1.0.3. commit c2e56705b36163307f5a111381f66c386e164bad Author: Frederik Heber Date: Mon Sep 12 10:46:41 2011 +0200 Added serialization capability to RealSpaceMatrix. - added SerializationTest to MatrixUnitTest. - Requires CodePatterns 1.1.5 due to serialization header and problems with MemDebug. commit 29cbe9eb5045c2dc5460417786abf8dd54510240 Author: Frederik Heber Date: Fri Sep 9 23:30:06 2011 +0200 Added serialization capabilities to VectorContent and MatrixContent. - both a bit tricky due to gsl_vector and gsl_malloc. - TEST: also added SerializationTest() to either UnitTest. commit c5038eb29dd533dd1cd33dee2c21d56fbd61fcd0 Author: Frederik Heber Date: Fri Sep 9 23:24:02 2011 +0200 Made MatrixContent and VectorContent dimensions const by placing into extra class. - new classes MatrixDimension and VectorDimension. - they only displays getters to the outside. Thus, we may savely serialize them without having to disable the constness. commit c8b17b55097e09730f211d414d01a4b65d6e8a5b Author: Frederik Heber Date: Tue Oct 11 16:45:18 2011 +0200 DISTCHECKFIX: Added missing chmod u+w were appropriate. - This is necessary as files are copied as read-only which prevents molecuilder from writing changes to file. commit 220cf64c6ebf68c0e5bed116415d5287df404a6a Author: Frederik Heber Date: Fri Sep 9 18:54:58 2011 +0200 Added Undo/Redo capability to ElementDbAction. - thanks to serialization of periodentafel and element. - !NOTE! when serializing pointers inside classes: header file of this class must at some point be present (due to the templated serialize function). - TESTFIX: Updated regression test for ElementDbAction. Loaded databases are now different and this reflects in .conf output file. commit 35a25a5e7b6adf34c70b8e928981ffc70f9b5cd4 Author: Frederik Heber Date: Wed Oct 12 15:00:32 2011 +0200 AtomInfo does not store ref to element anymore but only atomic number. - if we want to allow for elements to be changed, no refs may be stored at other places. Now we just store the atomic number and look up the element in the periodentafel on request. commit b6080419d0487202fd76c9e76fba31c44bf97c46 Author: Frederik Heber Date: Fri Sep 9 15:12:21 2011 +0200 Added serialization to class periodentafel. - added unit test on comparison and serialization. - FIX: removed inclusion of PeriodentafelUnitTest.hpp in periodentafel.hpp as forward declaration is sufficient. - ComparisonTest and fix of operator==() for class periodentafel. commit d7d0227486bc1c19c9648ca87b259ad4cf6fa8c2 Author: Frederik Heber Date: Fri Sep 9 14:02:18 2011 +0200 Added serialization functionality to class element. - also added extensive unit test on class element. - we use boost::serialization. commit bae8b0a28256b8566e57053ad9e6fe49dd1c2b39 Author: Frederik Heber Date: Fri Sep 9 14:00:41 2011 +0200 FIX: some smaller changes to class element. - removed those nonsense ref getter for symbol and name. Now, getter only return const ref. - NDIM -> 3 and removed inclusion of defs.hpp. - int -> size_t as we desire an array size. - initializing now some forgotten values in default cstor. commit f08ae71ecd45b3ee35670dda17aad600096f37e5 Author: Frederik Heber Date: Wed Sep 7 18:35:59 2011 +0200 Extension of usage of Tsuna's boost.m4 macro. - boost.m4 from https://github.com/tsuna/boost.m4.git (serial 16 + updates). - LinearAlgebra does not depend on any boost libs only two headers and CodePatterns. - Presence and Usability of every boost header and lib is now checked. - Using updated ax_codepatterns.m4. - FIX: boost has not been possible to link with if not residing under some default path. This is now possible. commit 78d5b295fa5c42519eac5454fe4513a96fe11df3 Author: Frederik Heber Date: Mon Sep 5 19:25:14 2011 +0200 Added Undo/Redo capability to LoadAction. - Added cloning of FormatParser_Parameters before the file is loaded such that FormatParser (here only MpqcParser) is returned to original state. - Additionally, we just store molecule's id and the file's prefix and suffix in the undo state. - TESTCHANGE: Removed XFAIL's from all Parser load's Undo/Redo tests. commit aa8cc2489bb25c1b7c91aff06cb26327b39a7afd Author: Frederik Heber Date: Tue Sep 6 10:34:01 2011 +0200 TESTFIX: Regression tests for Parser load now correctly compares the undo case against empty file. - added correct emoty file to each Parser test's post folder. - adapted undo case for each load test to compare against the empty file. - note that tests for Undo/Redo are still marked as XFAIL. commit 5c54721f1805c72ffcc7cfd5b2f209ed7ebc7847 Author: Frederik Heber Date: Tue Sep 6 10:35:03 2011 +0200 FIX: PdbParser::save() now writes correct empty file. - PdbParser::save() writes "REMARK...\nEND\n" even if there are no atoms (and hence no timesteps). commit 4151b06b3d969dc206995ba2f620979d5dc0a494 Author: Frederik Heber Date: Tue Sep 6 10:22:03 2011 +0200 FIX: Parser's dstor were not virtual despite inheritance. commit c1db05903a75be5fb69205e949bced95e69b4a1c Author: Frederik Heber Date: Tue Sep 6 10:45:22 2011 +0200 Abstracted FormatParser_Parameters and made it "Clone"able. - this is preparatory for having an undoable LoadAction. - is so far only used by MpqcParser_Parameters. - FormatParser_Parameters::clone() clones the instance (uses CodePattern's Clone pattern). - FormatParser has pointer to FormatParser_Parameters. - MpqcParser now has parameters as inheritance from FormatParser, allocates in cstor, removes in dstor. - new function MpqcParser_Parameters::makeClone() sets instance to be a copy of the given one. - MpqcParser: replaced direct access to params by getParams(). - added ParameterCloneTest to ParserMpqcUnitTest. commit e611dcada623ad28011aa5d0079a58228b4f54e8 Author: Frederik Heber Date: Mon Sep 5 19:31:55 2011 +0200 FIX: AT_KEYWORDS requires _space_-separated list of keywords. commit 6bc86c8f315a1909525c8dcf9bfe9a40927a306f Author: Frederik Heber Date: Mon Sep 5 19:24:31 2011 +0200 Implemented specific AtomRemoved(),AtomInserted() for Pdb and Tremolo parsers. - each remove information from their ..AtomInfoContainers, if present. commit 38f9917c644ed150841c7a1a6aa20bc1363313c6 Author: Frederik Heber Date: Mon Sep 5 19:23:16 2011 +0200 FormatParser now listens to World::AtomRemoved and ::AtomInserted notifications. - World now has const iterators for selectedAtoms and selectedMolecules. - FIX: RemoveAction was broken in usage of beginSelectedAtoms() for removing them! This is fixed. Same for FragmentAction() where non-const iterator had been used for fragmenting. - The above was caused by the following (we would stumble over receiveNotifications() going into void): - new virtual functions AtomRemoved() and AtomInserted() which the specific parsers overwrite, e.g. to remove additional information when the associated atom is removed. commit ab4a330bb4a5a2e75bd17f63fc36cba9ce4edaad Author: Frederik Heber Date: Mon Sep 5 19:22:26 2011 +0200 FIX: World::destroyAtom() now informs before atom's destruction, not after. commit 35bf6be58e0770834fcf4a7d8a69d69658043b29 Author: Frederik Heber Date: Mon Sep 5 12:46:14 2011 +0200 TESTFIX: Parser/Mpqc-SetParameters/set-theory working. - removed XFAILs - MpqcParser_Parameters::setter() yes/no and 1/0 allowed as bool strings. commit 89643db5d138dd16f16f5289031ddcc7811d46e5 Author: Frederik Heber Date: Fri Sep 2 12:12:01 2011 +0200 Enabled also un selection when clicking already selected atoms. - introduced ... which allow for just knowing the id (which is all needed): - World::isAtomSelected(), - World::isMoleculeSelected(). commit b7ff035ccbca9dd3a5ea57a4476fb4ec3fbec0b7 Author: Frederik Heber Date: Fri Sep 2 12:11:27 2011 +0200 Selection NotAtomByIdAction now gets atomId_t not const atom *. - see Selection AtomByIdAction. commit 0e9ffe3f980f1dc11a0b7b21a4342660cfc00b4f Author: Frederik Heber Date: Fri Sep 2 11:58:14 2011 +0200 Enabled selection when clicking atoms. commit 5a88409929fafa0edd9c452df1f3d525d7db4154 Author: Frederik Heber Date: Fri Sep 2 11:56:53 2011 +0200 Selection AtomByIdAction now gets atomId_t not const atom *. - This makes it possible to use it with the GUI where we know the id, not the ref. (and pointer is too low-level, retrieving it should be the problem of the action, not the query). commit 12948c2ccfa9172ddcc2b58e9905c238b969ea5d Author: Frederik Heber Date: Fri Sep 2 11:54:17 2011 +0200 Added new Query for std::vector of unsigned int. - this is preparatory to make selection rectangle possible. commit 838cd09f5b0b8fc58fc121f2fad94ab4a811175b Author: Frederik Heber Date: Fri Sep 2 11:21:45 2011 +0200 Added new Query for unsigned int. - this is preparatory to switch select-atom-by-id to true atomId_t query. commit 65487f331fd5824af614cee6c3d083360a9f4d4b Author: Frederik Heber Date: Fri Sep 2 10:42:34 2011 +0200 FIX: hoverChanged() and ..Clicked() now also works for loaded molecules. - introduced signal WorldScene::changeOccured() which triggers a private flag changesPresent in GLWorldView to call initialize() on next paintGL() event. commit a099d37e9af2d031e927cb528eae711e79891eef Author: Frederik Heber Date: Fri Sep 2 10:13:35 2011 +0200 FIX: hoverChanged() again working for immediately loaded molecules. commit df765f38b6dbe853b2dd20ffbd223c4457a00482 Author: Frederik Heber Date: Fri Sep 2 10:13:18 2011 +0200 gitignore ignores new .autotools of eclipse. commit 9c18e48b7af8959648d5a1a088f561ed14050917 Author: Frederik Heber Date: Thu Sep 1 20:17:08 2011 +0200 FIX: Observers (GLMoleculeObject_atom, GLWorldScene) sign off on destruction. commit 5e2f80b94564cd7797be678d694bf8d3012bd825 Author: Frederik Heber Date: Thu Sep 1 19:06:04 2011 +0200 BondedParticle no more hands out non-const ListOfBonds. - the few required instances were always for removing all bonds inL - GraphCreateAdjacencyAction::performCall(), - MoleculeCopyAction::performUndo(), - BondGraph::cleanAdjacencyList(), - BondGraph::resetBondDegree(), - molecule::removeBonds(), - MoleculeListClass::AddHydrogenCorrection(), - ListOfBondsTest::AddingBondTest(). - added BondedParticle::removeAllBonds(). - added BondedParticle::resetBondDegree(). - BondedParticleInfo::getListOfBonds...() now returns empty list if out of bounds (emptylist is static member variable of the class). - ListOfBondsUnitTest runs fine. commit 37b257551a03bddeeb79df686a845ed3e736653e Author: Frederik Heber Date: Thu Sep 1 18:33:11 2011 +0200 GLMoleculeObject_atom listens to BondsChanged notification. - signal is sent to slot in GLWorldScene which inserts or removes bonds for the specific atom. - i.e. now we may load a file and both atoms and bonds are correctly shown via the observer mechanism. commit db7e6dbec5ed7a09556e844d6574a820fe80de92 Author: Frederik Heber Date: Thu Sep 1 18:25:34 2011 +0200 BondedParticle:: register and unregister are private. - adding and removing bonds is possible via addBond(), removeBond(). - this wat we encapsulate the register and unregister and make sure that never a lone bond remains at one side. - adapted: - BondGraph::CreateAdjacency() - Register and UnregisterBond are OBSERVEd. - bond::Contains() is const member function now commit 7188b130f196698d071c5787a688b84efdfde506 Author: Frederik Heber Date: Thu Sep 1 15:49:14 2011 +0200 Introduced atom_observables and GLWorldView observes World, GLMoleculeObject_atom observes its atom. Observer changes: - new Channels pattern required from CodePatterns 1.1.5 and that Observable signing on and off is now with const instance possible. - class atom is now observable, encapsulated in class AtomObservable: - enums have notification types - we use NotificationChannels of Observable to emit these distinct types. - atominfo, particleinfo, bondedparticleinfo all have OBSERVE and NOTIFY(..) in their setter functions (thx encapsulation). - class GLMoleculeObject_atom signs on to atom to changes to position, element, and index. - World equally has notifications for atom (new,remove) and molecules (new, remove). - GLWorldView now observes World for these changes. Other changes: - removed additional hierarchy level for GLWidget of molecules (i.e. GLMoleculeScene removed and incorporated into GLWorldScene). commit e638f994597de00dea35ab713ed67450ce61ec6e Author: Frederik Heber Date: Mon Aug 29 12:03:29 2011 +0200 Removed changetypes.hpp. commit 5fa2bac2fc0563ed676ba8178b07597a44189e58 Author: Frederik Heber Date: Mon Aug 29 11:53:53 2011 +0200 Enhanced PdbParser to read ill-formed pdbs. - conect entries may now contain 0 as filler (and serial 0 presence is checked). - ATOM info lines may contain less than 80 chars, then name is parsed for element. - added new regression test Parser/Pdb/load-various for this. commit 029bb4e5c3a78c79d56801bff9ea647fbc143423 Author: Frederik Heber Date: Fri Aug 26 18:34:12 2011 +0200 Hovering is now working too. - signal chain installed from GLMoleculeObject::hoverChanged() through GLMoleculeObject, over GLWorldScene to GLWorldView which calls updateGL(). commit 06ebf53dbb995f5e8ab81361cc8b991ca48cb1c8 Author: Frederik Heber Date: Fri Aug 26 18:26:42 2011 +0200 Clicking on atoms works. - GLMoleculeObject_atom, GLMoleculeScene, GLWorldScene have a signal/slot chain that is gradually enriched with ids of clicked atom part of clicked molecule. commit 907636a5dab60af4f441f0c8888aadfce03987fc Author: Frederik Heber Date: Fri Aug 26 17:53:28 2011 +0200 First working version of GLWorldView that show atoms and molecules. - GLWorldView is view of model GLWorldScene. - GLWorldScene contains GLMoleculeScene for each molecule. - GLMoleculeScene contains GLMoleculeObject_.. for each atom and two for each bond. - GLMoleculeObject_... derive from GLMoleculeObject which hides the specifics of being sphere or cylinder and allows for initializing and drawing unifiedly. - so far clicking the atoms is not working (as in teaservice example). commit 04f01714d458f4a933c136873fbcc398845e35c2 Author: Frederik Heber Date: Fri Aug 26 16:54:28 2011 +0200 Removed teapotview.?pp again. - Functionality is contained in GLWorldView class now. commit a08d3c00dcbb9d956c0c86998b341be1da386fb2 Author: Frederik Heber Date: Fri Aug 26 16:49:14 2011 +0200 Replaced empty GLWordlView QWidget by TeapotView example from Qt3d. - this completes the initial test for a QGLView derived class. commit da8f976db1621e38a0ee1d854a6bd9c8aab85bd0 Author: Frederik Heber Date: Fri Aug 26 16:36:52 2011 +0200 MEMFIX: in QtMainWindow and preventing segfault. - QtMainWindow did not remove its MainMenu. - QTUIFactory's deleting app causes segfault as of now (close button might delete app already?). Removed, though causes memory leak. commit d238e7e948efa1a2e02036034b4407a09d66674d Author: Frederik Heber Date: Fri Aug 26 16:34:14 2011 +0200 Replaced GLMoleculeView by Qt3D/GLWorldView, which is as of now a dummy. - Qt3D/GLWorldView has no function but compiles. - will contain a QGLView eventually. - adapted QtMainWindow to contain the different class. commit 060ba4d6cd1eae34f74c568b5a8bba925209a97d Author: Frederik Heber Date: Fri Aug 26 16:28:48 2011 +0200 Replaced m4 macro gwqt4.m4 by bnv_have_qt.m4 - as is used with seismolo. - @MOC@ -> QTMOC, @UIC@ -> QT_UIC. - QT_LIBS has it all. - new QT_DEBUG when Qt debug should be printed or not. commit bd8788bcc2770639f10e6ae00ebace78491ad284 Author: Frederik Heber Date: Fri Aug 26 16:24:46 2011 +0200 src/Makefile.am: Adding to variable bin_PRORGRAMS. commit 573d72e37429185a7a44c99c55ce6c49640a7f88 Author: Frederik Heber Date: Mon Aug 15 12:55:56 2011 +0200 FIX: saveAll() had some senseless memory allocation. - this is a remnant of a test whether MemDebug showed this still allocated memory correctly. commit 47812bf29752df13c8f68d7f28e671425f9384a7 Author: Frederik Heber Date: Fri Aug 12 18:09:00 2011 +0200 FIX: MolecuilderGUI crashes on selecting molecule. - QtWorldView::update() set ATOMS column twice, hence FORMULA was NULL item. - rename in enum COLUMNTYPES: ATOMS->ATOMCOUNT. commit b40b9d6354d6e302484b05573727b84ac8f4106a Author: Frederik Heber Date: Fri Aug 12 17:16:28 2011 +0200 FIX: Bonds are now displayed correctly. - using Vector::VectorProduct() to correctly create normal vectors and fixed therewith GLMoleculeView::makeCylinder(). commit 29daadd534e411fe720e18c440a42be6eb53edc0 Author: Frederik Heber Date: Thu Aug 11 17:14:05 2011 +0200 Added rudimentarily working GlMoleculeView (class was empty before). - We took over the code from (ancient) branch MolecuilderGUI and adapated it to the current standards. Atoms are drawn, bonds in some so far wrong direction as well. - Note that the guz has trouble showing dialogs for all Actions. This should be some minor bug. commit 064178f528b483f670f19f89ffe6723a2f46d988 Author: Frederik Heber Date: Thu Aug 11 16:20:59 2011 +0200 Added color database to periodentafel. - periodentafel::LoadColorDatabase() added and added to cstor. - element::color as unsigned char[3] added. - element::getColor() added. - ColorDB const string in elements_db.[ch]pp added. - added LoadColorDatabase() to periodentafelTest::LoadStoreTest(). commit 81c980b965fafebb2dcfa97d9e7af728f828bf96 Author: Frederik Heber Date: Tue Aug 9 18:56:31 2011 +0200 Added new action to set the ATOMDATA in tremolo's .data output file. - new action is set-tremolo-atomdata in ParserAction. - added regression test. commit f7c19ef45479bcaff60cc9fdb2998767b71aefb3 Author: Frederik Heber Date: Tue Aug 9 18:39:43 2011 +0200 Some fixes to parsing files. - MpqcParser::save() does not store all atoms but those given in the parameters. - FIX: MoleculeListClass::AddHydrogenCorrection() and FilePresent() check with bad() and eof() whether file is missing or has ended. commit dc882751b0f5d22558db16527011af688d013cd3 Author: Frederik Heber Date: Mon Apr 25 00:34:16 2011 +0200 Set version of LinearAlgebra to 1.0.2. - LinearAlgebra library is now 2:0:0. commit 26108c891400d13c6ff2a37395d1a3566003a995 Author: Frederik Heber Date: Mon Apr 25 00:30:42 2011 +0200 FIX: Changed ambigious interface for MatrixContent::transpose(). - now, if we transpose in place, the function is transpose() (active voice). - if we transpose to other MatrixContent, it is transposed() (passive voice). - this also changed the interface for RealSpaceMatrix::transpose(). - fixes in several unit tests where before we always had to explicitly cast the matrix to const in order to make use of the passive voice form. commit 59e06352565152e740ef911af808bb55268fba36 Author: Frederik Heber Date: Sat Apr 23 22:22:03 2011 +0200 Set version of LinearAlgebra to 1.0.1. - LinearAlgebra library is now 1:1:1. due to changes to code and adding to interface VectorContent and MatrixContent. commit cec7a55776b5068824e2e8a898b8c9ba9b3b6137 Author: Frederik Heber Date: Sat Apr 23 22:20:38 2011 +0200 Added Singular Value Decomposition to MatrixContent. - this allows for solving over-determined linear system of equations in a least squares sense: || Ax - b ||^2. - Unit test added on SVD and solving of an example system. commit 7a03405921dca3b136f7e49c7e1b3797e598c4fc Author: Frederik Heber Date: Sat Apr 23 21:41:36 2011 +0200 Renamed MatrixUnitTest to more appropriate RealSpaceMatrixUnitTest. commit e420f9699375be338a4e7e5c3b2b6e979946c03c Author: Frederik Heber Date: Sat Apr 23 21:38:12 2011 +0200 Added read/write capability of VectorContent from stream. - this is all taken and adapted from MatrixContent. - Unit test function added on this. commit d2bac9e91c385f9133253b99832fac5878a01c61 Author: Frederik Heber Date: Sun Apr 24 00:51:59 2011 +0200 Added VectorContent(gsl_vector *, bool). - Via the bool it can now be specified whether VectorContent assumes ownership over the gsl_vector or just wraps it temporarily. commit 8b8a5b378d2399432b6e5b67d730a223d13d776b Author: Frederik Heber Date: Sat Apr 30 15:58:11 2011 +0200 FIX: Parser/Mpqc-SetParameters and redo/undo are working. - also Undo would check for CLKS which the file sets and is not the default value of theory, we now check for MBPT2 and Undo works. commit 473237055cdf05b40bc70aa53d5b35d6960b4daf Author: Frederik Heber Date: Sat Apr 30 15:10:10 2011 +0200 FIX: PdbParser - CONECTs with full 80 chars were not parsed correctly. - this fixes ticket #147. - also, we now write full length CONECTs. - added regression test to check on this behavior. - TESTFIX: Parser/Pdb/with-conects now diffs with '-w' to ignore white spaces errors. CONECT lines need not have full length. - TESTFIX: Molecules/BondFile/Fragmentation now diffs with '-w' as well. commit 8990879f0d70e37254ee9c7844475862be401b8a Author: Frederik Heber Date: Sat Apr 30 14:31:44 2011 +0200 FIX: PdbParser - symbol is now parsed and written in capital letters. - This fixes ticket #146. - Added regression test to check this behavior. commit f6ba43405488e9595322b8bef96c7c7fb1191d67 Author: Frederik Heber Date: Tue Sep 27 11:07:46 2011 +0200 Many smaller changes to CreateMicelleAction to get it fully working and compliant. Changes to MoleculeCreateMicelleAction::performCall(): - returns Action::success when no molecule is selected. - we check for selection of not more than one molecule. - we store full undo (positions in selected molecule and added molecules). - new parameter DoRotate to tell whether to mirror molecule along z axis or not. - FIX: we rotate to PAS only in case of more than one atom present in molecule. - FIX: copied molecules are added to World's MoleculeListClass (and correctly removed in performUndo()). - FIX: Placed shifting original molecule into own block and corrected usage of RotationAxis. - Also performUndo() is fully implemented. - we can... and shouldUndo(). - added regression test on both do and Undo. commit c521e15fac8ef6fb70fa919455eee4364ac68fa6 Author: Frederik Heber Date: Tue Sep 27 11:07:11 2011 +0200 FIX: Shifted CopyMolecule in regression tests to alphabetical order. commit c88597db2d870358b59615ead9c13f587c938698 Author: Daniel Dueck Date: Mon May 16 18:32:53 2011 +0200 Rotation of the molecule in order to bring the polar side of the molecule to the outer side of the sphere. commit 37f9d4101597f8ba2fd2cd5b4c37bdbe8c1a9691 Author: Frederik Heber Date: Tue May 10 19:30:45 2011 +0200 Changed some non-standard stuff with CreateMicelleAction. - renamed files CreateMicelle -> CreateMicelleAction. - rewrote german comments in english. - removed #define, replaced by typedefs. - removed commented-out code pieces. - TESTFIX: regression test 93 failed due to ATOMDATA line being different for tensid.data and water.data. I use the one from tensid.data and re-created the water.data with this line. Changed due to rebase onto v1.1.3: - renaming done before already. commit 2e352f30207b69623be3c5c319359d2810255ecd Author: Daniel Dueck Date: Wed Apr 6 19:17:41 2011 +0200 Because of problems with columns in data-files, some changes were done. - atom::CorrectFactor() does not set fathet to itself anymore in father's father case. - molecule::CopyMolecule() does not correct fathers anymore Changed due to rebase to v1.1.3: - removed changes to TremoloParser.cpp and boundary.cpp. commit faca99c4b3a8189ab455e43e58a6dae918e736fa Author: Daniel Dueck Date: Sat Jan 15 17:11:41 2011 +0100 MoleculeAction create-micelle: code updated; Baseshapes: procedure getHomogeneousPointsonSurface updated Changed in rebase onto v1.1.3: - replaced parser instantiations by getter to FormatParserStorage and World. - removed doubly present loop over count (creates 194^2 points). - We create now less than desired points, Unit tests checks for 194 instead of originally 200 points. commit 807c0e436d410a1be20e422e058fff53475aaef6 Author: Daniel Dueck Date: Wed Oct 13 10:26:41 2010 +0200 Daniel has recently changed his mizelledata to work as an action "create-micelle" within molecuilder. - BUGFIX: performCall() did not return an Action::success. Changes due to rebase to v1.1.3: - replaced instantiated parsers by getter to FormatParserStorage and World. - adapted .def file to present standard. - renamed CreateMicelle to compliant CreateMicelleAction. commit e2e0a5aeb2de4b1a4ca6145edf6923b383c5bd3c Author: Frederik Heber Date: Thu Sep 16 11:25:01 2010 +0200 Added Daniels version from 2010/09/15 and Makefile stuff to this branch. - Changed Daniels version a bit such that it compiles: - removed code that is in comments - BUG: FragmentationSubgraphDissection() has to be in front of removal of original molecule. - rotation done by Line::RotateVector() as well - replaced while by tighter for loops Changes from rebase to v1.1.3: - no need to populate actions, removed MapOfActions include. - replaced instantiated parsers by getter to FormatParserStorage(). - added MemDebug.hpp and config.h inclusion to mizelledata.cpp. commit c4cde16be7aa43dfc48d824ce2782f90be1dc23c Author: Frederik Heber Date: Wed Apr 27 20:37:47 2011 +0200 Set version to 1.1.3. - Codename "Donald Duck" (the license plate of his first car in a 1938 comic) :) commit e85333cbdf94b0f1a5c3369818d89b648d323a69 Author: Frederik Heber Date: Tue Oct 4 16:04:28 2011 +0200 DISTCHECKFIX: AUTOTEST_PATH is now used as path to moleculder in molecuiler.in for tests. - this closes ticket #149. commit b4e3fe35dd420400cf9a1ecb5071f492e53159a1 Author: Frederik Heber Date: Tue Oct 4 16:04:03 2011 +0200 DISTCHECKFIX: .moc.cpp files were not in MOSTLYCLEANFILES. commit 7db9bdca097aa9e4f1c2d317be2952824752399f Author: Frederik Heber Date: Tue Oct 4 13:59:19 2011 +0200 DISTCHECKFIX: Replaced AUTOTEST_PATH by real path (e.g. tests/regression). - this corrects VPATH problems with 'make distcheck'. commit 740d40e9b13bb9dbeb059d1f879dae6db1a97e2d Author: Frederik Heber Date: Thu Sep 29 18:56:25 2011 +0200 Rewrote tests/Fragmentations with autotest test driver. commit 689639d55a02f461620aa8b592dbae38a20aff61 Author: Frederik Heber Date: Thu Sep 29 18:14:28 2011 +0200 DISTCHECKFIX: Smaller changes to tests/regression Makefile.am and in configure.ac. - this is stuff learnt from rewrote of tests/Tesselations. - also added AC_CONFIG_TESTDIR for CodeChecks in tests and LinearAlgebra/tests. - atconfig files are removed in DISTCLEANFILES. commit a85f4542482b1c8da1342c3250ec1e4dbcab52f1 Author: Frederik Heber Date: Thu Sep 29 18:12:18 2011 +0200 Rewrote tests/Tesselations with autotest test driver. - this made the whole tests a lot easier (and working with distcheck hopefully, too). commit aba610cde06d025a98237132edfdeacef9fe648c Author: Frederik Heber Date: Thu Sep 29 14:46:48 2011 +0200 FIX: EXTRA_DIST in tests/Tesselations and tests/Fragmentations lacked the test files and others. commit 552597fe713aa65c498025df8719af1f913e8a62 Author: Frederik Heber Date: Thu Sep 29 09:44:37 2011 +0200 FIX: Renamed CommandLineParser_ActionRegistry_ConsistenyUnitTest -> CommandLineParser_ActionRegistry_ConsistencyUnitTest. - both in files and in class name. commit fec3813f626b40a0ef8ea6647dd2536bc93a711d Author: Frederik Heber Date: Thu Sep 29 09:22:35 2011 +0200 Replaced molecuilder's CXXFLAGS by AM_CPPFLAGS instead of only BOOST_CPP_FLAGS. commit 79de12a31074a28e29afce5800da9884f1b1cd0d Author: Frederik Heber Date: Tue May 10 14:35:11 2011 +0200 Replaced *_boost_*.m4 by boost.m4 from tsuna. - https://github.com/tsuna/boost.m4/ has a very nice boost m4 macro to check for presence of boost headers and libraries, also setting the rpath correctly. - required changes in all Makefile.ams as BOOST_... variable names have changed. - added all .m4 files to EXTRA_DIST. - added Boost's LDFLAGS to libMolecuilderUI and ..QtUI's LDFLAGS such that libs in usual paths are found, too. commit 5a8f38580d2593615980b7513d7e2e2a4c413589 Author: Frederik Heber Date: Wed Sep 7 19:14:23 2011 +0200 FIX: "position" and others were not accepted because they have been added multiple times. - some newer version (1.46) of boost program options does not seem to like multiply added options although they are all the same (type, ...). This is fixed. commit ec188cd9bf78485f7613e2bea7509b0f99ac5c34 Author: Frederik Heber Date: Fri May 6 10:27:22 2011 +0200 Fixed Doxygen usage. - using now functions from ac_doxygen.m4, added TOP_SRCDIR to DX_ENV_APPENDs. - Doxyfile's now used environment variables set by these functions. - ac_doxygen.m4 patched with this due to "not a valid shell variable" bug: https://issues.apache.org/jira/browse/AMQCPP-191 - used aminclude.m4 from doxample (by Oren Ben-Tiki) renamed to ac_doxygen_include.am. - added phony target doc that calls doxygen-doc for both molecuilder and LinearAlgebra. - DOCUFIX: fixed a doxygen bug in analysis_correlation.cpp: getDipole(). - Doxyfile(s): Both INPUTs point now to $(TOP_SRCDIR)/src, which is correct for both (separate) packages. - configure sets docdir as doc target dir. commit 632a52b11abb20d9061552caa17f2fbef9b87353 Author: Frederik Heber Date: Tue Aug 9 18:59:24 2011 +0200 FIX: boost::filesystem 1.47 changed output of extension(), stem(), and leaf(). - fix was to add .string(). - we check for BOOST_VERSION to be greater equal than 104600 to apply this fix. commit e5c233cf7fc321481d7f2bd42b55e4580bbc581e Author: Frederik Heber Date: Wed Aug 10 09:31:49 2011 +0200 FIX: replaced boost/exception.hpp by boost/exception/all.hpp. commit 416f10c2b16b2231b57ec982e4c5132067b090fa Author: Frederik Heber Date: Tue Aug 9 18:34:34 2011 +0200 FIX: help string on domain is wrong. - CommandHelpAction() gives components of symmetric matrix for domain in wrong order (upper now lower triagonal). commit d1912fffef19cf0c1e8759c90abbf98943a9e7fd Author: Frederik Heber Date: Wed Sep 28 11:45:58 2011 +0200 FIX: \text{} replacec by \mathrm{} in doxygen formulas. commit a08d6609baab55d50214c73a7aa64f50c0786260 Author: Frederik Heber Date: Wed Apr 27 20:59:09 2011 +0200 Fixed wrong version numbers in headers of testsuites. commit 718542b98ffda42460e79001a427f156caa6bcc9 Author: Frederik Heber Date: Wed Apr 27 20:34:45 2011 +0200 Filled action's token as keyword in each test. - also all keywords are now lower case. - undo and redo are listed as keywords as well if applicable. - FIX: Removed check for present molecules from SelectionActions. When none can be selected, this must not yield in failure of the Action but is perfectly acceptable. commit 43a0aebcbd9fa87981dbf5339765fb0804d755c8 Author: Frederik Heber Date: Wed Apr 27 19:33:30 2011 +0200 FIX: All Unselection actions now have keyword unselection instead of selection. commit f2872ae885ed8ca989001542d272c75794be73c1 Author: Frederik Heber Date: Wed Apr 27 19:31:05 2011 +0200 Split off Unselections from selections in Selection/Atoms. - each testsuite*.at file now just has a single test (including undo/redo). - renamed testsuite*.at files: added missing "select-" such that full action name is contained in filename. commit d70fffeeaa945095af732c68c3627ca366d9de9f Author: Frederik Heber Date: Wed Apr 27 19:12:12 2011 +0200 Split off Unselections from selections in Selection/Molecules. - each testsuite*.at file now just has a single test (including undo/redo). - renamed testsuite*.at files: added missing "select-" such that full action name is contained in filename. commit 7c958e3f7ce548c4bf2fc8abe3caa46d9990fd56 Author: Frederik Heber Date: Wed Apr 27 19:02:43 2011 +0200 Removed CheckCommand.sh in Selection/Molecules. - multiple inclusion is currently not handled by autoconf in test part. commit 93eb00f571cb1fc2dbc48382ec249ff9bc734782 Author: Frederik Heber Date: Wed Apr 27 18:16:20 2011 +0200 FIX: Added forgotten regression test for unselect-atom-by-element. - has been missing so far, though unselect tests present for all others and select test present as well. commit 520f93930dc8a9f478562e28fb307e3e18d9b0bc Author: Frederik Heber Date: Wed Apr 27 18:08:44 2011 +0200 Split testsuite*.at files in regressions/Parser. - one test per file, although undo/redo remain in same file. commit e69c87634c601039ae61a1acb0b03fc6b7bddd17 Author: Frederik Heber Date: Wed Apr 27 14:06:33 2011 +0200 Splitted off Undo and Redo parts into own tests (3-step rule). - this way tests are cleaner as there are no old files left. - added lots of Undos/Redos. Corrected all failing regression tests (of these new Undos/Redos): - new ActionExceptions, specifically ActionFailureException. - Action::call() throws ActionFailureException when returned state_ptr equals failure. - ActionHistory::undoLast(), ::redoLast() also throw when returning state_ptr equals failure. - doUI() checks for thrownActionFailureException and sets World's ExitFlag to 5. - the following Actions have canUndo/shouldUndo now true (although Undo/Redo return Action::failure): - MoleculeBondFileAction - MoleculeLoadAction - MoleculeRotateToPrincipalAxisSystemAction - MoleculeVerletIntegrationAction - the following Action's regression tests have been corrected when Undo/Redo capability was already present (e.g. empty.conf created for Undo case): - MoleculeRotateAroundOrigin - MoleculeRotateAroundSelf - MoleculeRotateToPrincipalAxisSystem - MoleculeTranslation (also for periodic) - MpqcParser - PcpParser - PdbParser - TremoloParser - XyzParser - FindNonConvexBorder(): status was always returned as false as all CheckListOfBaselines() had been commented out. commit caeeb80840441e26c65bc21cf81c49717188c5b4 Author: Frederik Heber Date: Wed Apr 27 11:16:03 2011 +0200 Changes to regression tests: replaced all $file in ".../post/$file" by file name. - target files must not be in variables, their name is fixed by the filesystem! commit 23b0c2555391ed336a0a7589e88eb386466789ce Author: Frederik Heber Date: Wed Apr 27 10:59:00 2011 +0200 Restructured test*.at files: 3-step-rule. - three-step rule: setup, test, cleanup is now each separated by empty line. - test file name is (most of the time) placed into variable $file. commit 61749d17054bcece39fba5420f0e225cd447c600 Author: Frederik Heber Date: Thu Apr 21 19:46:27 2011 +0200 DISTFIX: package.m4 missing in several EXTRA_DISTS. - also, removed $(srcdir) prefix from its Makefile target. commit 8544a33cea3ab42744bfb8341060547cca13a1f4 Author: Frederik Heber Date: Thu Apr 21 19:45:59 2011 +0200 DISTFIX: Missing header file World_calculations.hpp in src/Makefile.am. commit fdcd1b73588b7c15f87110828836b0ef8c3f12ec Author: Frederik Heber Date: Thu Apr 21 18:35:34 2011 +0200 Moved DummyUI.hpp from unittests to Actions/unittests/stubs. - note that it is only used there. - TESTFIX: changed inclusion in ActionSequenceUnitTest.cpp and ManipulateAtomsUnitTest.cpp. commit 1e882ae154f988507b4a6df2947209c31d475449 Author: Frederik Heber Date: Thu Apr 21 18:34:18 2011 +0200 DISTFIX: Removed unnecessary header file analysis_correlation.hpp in unittests/Makefile.am. commit 4cf35ac91947662b202e1ff26e201da4fd076dba Author: Frederik Heber Date: Thu Apr 21 18:32:04 2011 +0200 DISTFIX: Missing header files in UIElements/Makefile.am. - missing: - Menu/TextMenu/TxMenuLeaveAction.hpp - Qt4/Pipe/QtQueryPipe.hpp - removed allmocs.moc.cpp from QTUISOURCE and is added as nodist_SOURCES as it is a temporary file. - we now require automake 1.5 due to the above dist_, nodist_ feature. commit 94c3e76bff1ec090197bc0cff9b1bbf7cf328c05 Author: Frederik Heber Date: Thu Apr 21 18:30:58 2011 +0200 DISTFIX: Header file Shapes/ShapeExceptions.hpp missing in Shapes/Makefile.am. commit f134463bea77189705391c669077a617459502f9 Author: Frederik Heber Date: Thu Apr 21 18:30:35 2011 +0200 FIX: .def, .undef files missing in RandomNumbers/Makefile.am. commit db3dd2dc28f5ae2ebe06a69929596195f91bfa51 Author: Frederik Heber Date: Thu Apr 21 18:29:49 2011 +0200 DISTFIX: molecuilder_DATA was missing in EXTRA_DIST. - caused missing elements.db, ... commit 36f507b1bd1ba07a2cd1197180a6c112e95869c6 Author: Frederik Heber Date: Thu Apr 21 18:28:17 2011 +0200 DISTFIX: Added missing header files to src/Makefile.am. - missing: - AtomSet.hpp - Descriptors/DescriptorBase.hpp and _impl.hpp - Descriptors/SelectiveIterator.hpp and _impl.hpp - BoundaryMaps.hpp - types.hpp commit 9cd9ab2e11c145454ffd01534ce03b8cc6602d9a Author: Frederik Heber Date: Thu Apr 21 18:27:32 2011 +0200 FIX: version.c is now included in MOLECUILDERSOURCE in src/Makefile.am. - header has been missing, too. commit dd8990f0ba7a27ce4aa346f061b8500dc7c9dec0 Author: Frederik Heber Date: Thu Apr 21 18:26:04 2011 +0200 FIX: .def files of Actions have not been present in Makefile.am, although similar to headers. - added third variable ...DEFS to each subdir with all .def files. commit 3001c9e46cce0362baca007b3c061df5e0baf9aa Author: Frederik Heber Date: Thu Apr 21 18:25:23 2011 +0200 FIX: LoadAction.cpp and RemoveAction.cpp were doubly included instead of header. commit 7159ed14ff2a781a124ce96659b2d528034556fb Author: Frederik Heber Date: Thu Apr 21 18:23:50 2011 +0200 DISTFIX: Missing header files in Actions/Makefile.am - missing: Action_impl_header.hpp, Actions_impl_pre.hpp, AtomsCalculation.hpp, and AtomsCalculation_impl.hpp. commit c5e91c80bd1884a9970269987ac36bf8184710d6 Author: Frederik Heber Date: Thu Apr 21 18:22:49 2011 +0200 DISTFIX: Exceptions.hpp and VectorSet.hpp missing in LinearAlgebra/Makefile.am. commit c8cfe35f708ba5944ec355cd264568d01a3af341 Author: Frederik Heber Date: Thu Apr 21 18:20:42 2011 +0200 DISTFIX: fixed typo in EXTRA_DIST. commit 768459b03b26501a732a980c136f0b6dcf14a25c Author: Frederik Heber Date: Thu Apr 21 18:20:14 2011 +0200 DISTFIX: replaced testsuite*.at by the filenames. commit 710dde4aedd658fec9779a8e9013ded56256bef5 Author: Frederik Heber Date: Thu Apr 21 18:18:42 2011 +0200 DISTFIX: manpage file man-molecuilder.in is just molecuilder.in. commit 1bd42dbd8bac0d3b5c6d6c7811c2397026d2e5e4 Author: Frederik Heber Date: Thu Apr 21 18:17:23 2011 +0200 DOCUFIX: Fixed formula errors - replaced \text by \mathrm, \acos by \arccos. commit dc322a95fe9cc369edc721168839af35d157982a Author: Frederik Heber Date: Thu Apr 21 18:16:19 2011 +0200 DISTFIX: need to use tar-pax to allow for longer filenames in dist's archive. commit 50228e270e2ef3c849bd22b5d3dd8ee9461a9d62 Author: Frederik Heber Date: Thu Apr 21 18:15:03 2011 +0200 DISTFIX: in EXTRA_DIST autogen.sh instead of bootstrap was still listed. commit dac853cbf770cdeafc4bdd7d6a4ed6e9869cea86 Author: Frederik Heber Date: Thu Apr 21 14:03:37 2011 +0200 Rewrote HelpAction. - is currently only useful to CommandLineParser. - gives general help and either list of Actions or an Action's help. - TESTFIX: changed regression test on help as output changed (a lot). commit 406bb5602ebca0fb814a7bc8777383eb42c9599a Author: Frederik Heber Date: Thu Apr 21 14:03:08 2011 +0200 Removed verbosity of CommandLineWindow::display(). - removed "Checking presence of ...". commit ec098d161915883c8b8ee3b38268e0ea8e78164d Author: Frederik Heber Date: Thu Apr 21 13:58:38 2011 +0200 Made info of CommandLineParser::AddOptionToParser() prettier. commit e4b2f62dfca2ad7ca11a6a9379376695981407b1 Author: Frederik Heber Date: Thu Apr 21 13:57:28 2011 +0200 Added Action::help(). - Action::help() returns a string that enlists all of its options including type of argument and default values. This will be used by HelpAction. commit 13799e61558eed972ef8a0528faff8bbe010609e Author: Frederik Heber Date: Thu Apr 21 13:57:08 2011 +0200 FIX: Action::getName() is now const member function. commit 3bd460af052917a45d592fa6b0fec95c039cefb1 Author: Frederik Heber Date: Mon Apr 18 18:02:39 2011 +0200 All Actions on domain now state the final domain size. - default text is "Box domain is now ..." and is checked also in regression test. commit b7fbf02193ab395cdbc7ff2dd356938ee5660022 Author: Frederik Heber Date: Mon Apr 18 17:42:35 2011 +0200 FIX: select-molecule-by-id crashed when no molecules are present. - each molecule selection action checks whether molecules are present at all - rewrote MoleculeByIdActions to take integer from command-line not molecule reference and perform the MoleculeById selection themselves (as do all other Actions, too). - this fixes ticket #134. commit b404da2c175e7f9b95c08827089310ea2a800703 Author: Frederik Heber Date: Sat Apr 2 03:01:21 2011 +0200 Set version to 1.1.2. - library is now 4:0:0 due to "removal" of LinearAlgebra. commit 7a1dd0dd732364be0f3893be54188e99c0bbc3ce Author: Frederik Heber Date: Mon Apr 18 12:05:27 2011 +0200 Added regression tests on parsing present but empty files. - every Parser now first loads an empty file (no newlinw, 0 bytes) as initial regression test. - this closes ticket #131. commit 4fdc6536733f18fb07af327a470c5552ca8c10ce Author: Frederik Heber Date: Mon Apr 18 16:57:15 2011 +0200 FIX: XyzParser and PcpParser fail on empty but present config files. - XyzParser::load() do..while -> while - ConfigFileBuffer::InitFileBuffer() do..while -> while - ParseForParameter() - check whether initially CurrentLine < NoLines. - NOTE: ConfigFileBuffer is not written in a stable manner, checks and encapsulation are missing. It should be refactored. commit 305e7e066de5b54b2aeede90057a8e00faffd49c Author: Frederik Heber Date: Mon Apr 18 14:43:30 2011 +0200 FIX: Type is actually spelled type with TREMOLO. - corrected in TremoloParser. - TESTFIX: the following tests has to be changed accordingly: - Parser/Tremolo - Parser/Tremolo-Potentials - Atoms/Add - Filling/FillVoidWithMolecule - Molecule/Copy commit 4217e768dc3bd03c7e60ad2a4aaf951c557eab5a Author: Frederik Heber Date: Mon Apr 18 10:28:40 2011 +0200 Added regression test on --parse-tremolo-potentials. commit 4555736a848291ba2a2394892fd02081032c5861 Author: Frederik Heber Date: Wed Mar 2 17:25:13 2011 +0100 Large Commit: SUBDIRS in src/Makefile.am replaced by include. - This should let make decide on the dependencies automatically. - We had to change each Makefile.am due to different relative location now. - FIX: convenience libs were not created due to lib_LT... instead of noinst_LT... (thanks, Ralf!) - FIX: convenience libs cannot pass on dependencies on real libs, these (seemingly: libLinearAlgebra) have to be re-specified. - FIX: RANDOMSOURCE/HEADER were still present to include in libMolecuilder although RandomNumbers have been outsourced for some time already. - this should make it a lot easier for unit tests to get away with the massive dependencies because we may now include single libs and can construct stubs in replacement. commit ca2cfa90c7de8dcc5abc2fe3009b82a5946e1c28 Author: Frederik Heber Date: Mon Apr 18 14:44:04 2011 +0200 FIX: TremoloParser writes neighbours as sorted list. - TremoloParser::writeNeighbors(): indices of neighbors are now written in sorted manner. commit bf4b9ff97113f58a6031de8f9e67813336ae63f1 Author: Frederik Heber Date: Sat Apr 2 02:53:43 2011 +0200 Moved LinearAlgebra from folder src/ into distinct sub-package. - src/LinearAlgebra folder is now LinearAlgebra/src/LinearAlgebra due to include consistency. - src/LinearAlgebra/unittests have been moved to LinearAlgebra/unittests. - All Makefile.am's had to be changed due to changed location of library. - renamed libMolecuilderLinearAlgebra to libLinearAlgebra. - CONFIG_AUX_DIR is build-aux 9for molecuilder and LinearAlgebra). - m4 is symlinked from below. - build-aux now contains small README such that it is created automatically. commit 3e2225f811016c9e0bb983b9e653cc67856805b1 Author: Frederik Heber Date: Sat Apr 2 01:11:48 2011 +0200 Removed subdir Exceptions and libMolecuilderExceptions. - changes in many Makefile.am's. - this completes replacement of Exceptions by boost::exception. commit 336e331077ae1495a8fb791f9f59393e6adcb006 Author: Frederik Heber Date: Sat Apr 2 01:03:04 2011 +0200 Removed MissingValueException from Exceptions. - is now boost::exception-derived in ValueStorage.hpp. commit 88267818974ad107d18379d2ec3d0d19c96351bd Author: Frederik Heber Date: Sat Apr 2 00:29:00 2011 +0200 Removed IllegalTypeException from Exceptions. - is now boost::exception-derived in ValueStorage.hpp. commit b94634903469fbb4f8f27672f141d13d2700a169 Author: Frederik Heber Date: Sat Apr 2 00:08:13 2011 +0200 Removed NotOnSurfaceException and ShapeException from Exceptions. - ShapeException is now base class for NotOnSurfaceException, both are derived from boost::exception. commit b88fe4cde25eb17a90126edc680f80f5b35c49c9 Author: Frederik Heber Date: Sat Apr 2 00:03:21 2011 +0200 Removed Exceptions/FormulaStringParseException. - is now boost::exceptions-derived and part of Formula. commit 00bb38e01da38a92854e72c77a6654dea58e2626 Author: Frederik Heber Date: Fri Apr 1 23:33:38 2011 +0200 Removed libMolecuilderExceptions from LinearAlgebra. - now we may place LinearAlgebra into own autoconf sub-package. commit 783e885947b7814a6e0a4ae6029926646165b744 Author: Frederik Heber Date: Fri Apr 1 23:30:33 2011 +0200 Removed LinearDependenceException, MultipleSolutionsException and MathException from Exceptions. - the first two are now boost::exception-derived. - LinearAlgebraException takes the place of MathException where both have to be caught. commit 8b9c43d8a9fd262a308876876cf5a443b3dbb2b8 Author: Frederik Heber Date: Fri Apr 1 22:27:13 2011 +0200 Removed Exceptions/ZeroVectorException. - is now boost::exception-derived. - new error_info LinearAlgebraVector. commit a700c4c185c43a45a447fc2167a3e93e0a5ef567 Author: Frederik Heber Date: Fri Apr 1 22:02:47 2011 +0200 Removed Exceptions/NotInvertibleException. - is now a boost::exception-derived LinearAlgebraException. - error_info LinearAlgebraMatrixContent now takes const MatrixContent * const. commit 3bfd78571692d65b69ab59f338e6f7ff197af6f0 Author: Frederik Heber Date: Fri Apr 1 21:52:21 2011 +0200 LinearAlgebra now begins having its own exceptions derived from boost::exceptions. - boost::exceptions allows to add arbitrary information in higher context to a thrown exception and has a nice diagnostic output, allowing so-called exception wrapping maintaining exception-neutrality. - deleted Exceptions/SkewExceptions.* - new file LinearAlgebra/Exceptions.hpp. commit 2558294f484d39a0281f98d18f6262ab77448e87 Author: Frederik Heber Date: Fri Apr 1 21:26:03 2011 +0200 Removed Helpers.hpp, deleted Helpers.cpp and libMoleCuilderHelpers.la is history. - defs.cpp is now compiled into libmolecuilder.la. - ShapeUnitTest alone needs defs.cpp. - Most changes are removal of Helpers/helpers.hpp. - performCriticalExit() now inline function in Helpers/helpers.hpp. - also inclusion possible where performCriticalExit() is needed. - Helpers/helpers.hpp does not include defs.hpp anymore and this causes lots of missing Helpers/defs.hpp, CodePatterns/Log.hpp and alikes. - removed src/Helpers from configure.ac. commit 8766e72010ab64c79807df9ff4eb81ce55f43598 Author: Frederik Heber Date: Fri Apr 1 20:17:43 2011 +0200 FIX: setRandomRotation() used probably faulty rotation matrix. - MatrixTest::RotationTest() indicated that rotation matrix did not have a unit determinant. Hence, it cannot be an orthogonal matrix. - instead we use function RealSpaceMatrix::setRotation() instead. commit b81f1c37e2cae3aa13b96b83b26fd5091886b161 Author: Frederik Heber Date: Fri Apr 1 17:14:39 2011 +0200 Removed libMolecuilderRandomNumbers from LinearAlgebra. - added RealSpaceMatrix::setRotation() that accepts phi[NDIM]. - moved RealSpaceMatrix::setRandomRotation() to boundary.cpp where it is solely used. commit 819cbed89a1b1c8ad28590a925dbf1e1e2054c50 Author: Frederik Heber Date: Fri Apr 1 17:12:21 2011 +0200 FIX: MatrixTest::RotationTest() allowed also rotations matrices with det of -1. commit 0a60eeb5e43ca7bfc3e01dd52cc33418b116bbed Author: Frederik Heber Date: Fri Apr 1 17:11:55 2011 +0200 Removed libMolecuilderHelpers from LIBADDs in LinearAlgebra. commit 71129f9baea5c7b294d5612a2cf24cf00ef7b14e Author: Frederik Heber Date: Fri Apr 1 16:28:45 2011 +0200 Removed inclusion of Helpers/...hpp from LinearAlgebra. - VectorContent needed replacing MYEPSILON by LINALG_MYEPSILON. - LINALG_MYEPSILON is now function (defines are ugly!) that returns numeric_limits::epsilon() commit 5605793b50554c75171309f425f1848783edb5d0 Author: Frederik Heber Date: Fri Apr 1 15:42:40 2011 +0200 Moved PLURAL_S from Helpers/helpers to UIElements/Views/Qt4/QtStatusBar. commit 0d03166b84523d21b5a24e252f06c2d1c8836345 Author: Frederik Heber Date: Fri Apr 1 15:36:59 2011 +0200 Removed FixedDigitNumber from Helpers/helpers. - is now inlined function with MoleculeListClass and parser's MatrixContainer. commit 67acff3b2b5a7a2780e62d6485ef467f15c03a57 Author: Frederik Heber Date: Fri Apr 1 15:30:04 2011 +0200 Removed debug and debug_in that are no longer used. commit 88874313f4197328929a0851202248fa35de9d9a Author: Frederik Heber Date: Fri Apr 1 15:24:37 2011 +0200 BUGFIX: VectorContent::free_content_on_exit not initialised for VectorBaseCase. commit cd406d8141ce4864a4ec88d2970d8b496562a3bd Author: Frederik Heber Date: Fri Apr 1 15:24:08 2011 +0200 Moved sign() from Helpers/helpers to LinearAlgebra/fast_functions.hpp. commit 6f68d6fb6d9ac0188a952835078622c964fe52dc Author: Frederik Heber Date: Wed Mar 30 22:45:38 2011 +0200 Added possibility to parse MatrixContent from stream and to write to. - MatrixContent::preparseMatrixDimensions() needed due to const members rows and columns. - extended present unit test on both features. commit 0e4aa4d2a8b0ce6daba3c91d5905d1a870b8d520 Author: Frederik Heber Date: Wed Mar 30 21:25:24 2011 +0200 FIX: MatrixContent::sortEigenbasis() sorted by magnitude not value. commit abfb12fe5dc5a45969d3e096df350658a1bfb9e3 Author: Frederik Heber Date: Wed Mar 30 21:23:58 2011 +0200 VectorContent also free's ::content when delivered by pointer. - the constructor with pointer argument is meant as a wrapper around a normal gsl_vector. Hence, it should not free the gsl_vector itself. commit 644d03de2a9c4ec1df012d1871b381ea3c5c9d13 Author: Frederik Heber Date: Wed Mar 23 21:28:49 2011 +0100 Added operator+ and operator- for two MatrixContent's. - += and -= have been present and all for VectorContent, but + and - were\ missing for MatrixContent. Added those two. commit a9c55698942f788e19972e1ede73d15250e27283 Author: Frederik Heber Date: Mon Mar 14 17:15:28 2011 +0100 Removed Subspace stuff from this project. - has been relayed along with unit test into its own project: SubspaceFactorizer. commit 06aedcbf17e4e4c9e8e3bb29a2bca5c03beb986b Author: Frederik Heber Date: Mon Mar 14 11:41:50 2011 +0100 libMolecuilderLinearAlgebra is now a self-contained library fit for external use. - added LinearAlgebra.pc.in and LinearAlgebra-debug.pc.in (both require CodePatterns, the latter CodePatterns-debug). - added LINEARALGEBRA_SO_VERSION (set to 1.0.0) to configure.ac. - moved NDIM from Helpers/defs.hpp to new file LinearAlgebra/defs.hpp. commit 9b410d4225f83b0e1aa39d84b3bd1bf3123fc2b3 Author: Frederik Heber Date: Mon Mar 14 14:54:08 2011 +0100 Replace MYEPSILON in LinearAlgebra/ by LINALG_MYEPSILON. - this is preparatory for external use lib libmolecuilderLinearAlgebra. - new file LinearAlgebra/defs.hpp. commit 1be8a5db51403592a61b0f3071550ee1f2030c56 Author: Frederik Heber Date: Mon Mar 14 14:37:17 2011 +0100 Changed inclusion of LinearAlgebra/Vector.cpp. - Removed unneeded inclusion of World.hpp from LinearAlgebra/Vector.cpp. - Added required inclusion of cmath to LinearAlgebra/Vector.cpp. commit dcc22897f02ef806a05b6d07248b009c7d3925a5 Author: Frederik Heber Date: Mon Mar 7 12:02:03 2011 +0100 Added script to check all commits in a given range externally. - i.e. the repository is cloned and we go through every commit in the range by a respective git checkout including bootstrap, configure, make, and make check phase, both with and without debug. commit a9b20c0e45ff5b27b12063c8931880d9e3b01794 Author: Frederik Heber Date: Sat Apr 2 02:58:32 2011 +0200 Set current version to 1.1.1. - library is now 3:0:0. commit 37b2f913fa2e9ffae9bf60705af9678b84b39b29 Author: Frederik Heber Date: Mon Mar 7 12:01:35 2011 +0100 Added doc/html to gitignore. commit 61775a83598a3d535d294335a2a8bb6232049f6d Author: Frederik Heber Date: Thu Mar 3 02:29:55 2011 +0100 Removed templated CreateFatherLookupTable from helpers.hpp. commit 13a95397b14b03aa8f1b4580623690439ed06e5a Author: Frederik Heber Date: Thu Mar 3 02:28:42 2011 +0100 Moved molecule::CheckAdjacencyAgainstFile() into functor in Graph/. - Note that this is currently not working because there is no correct mapping from indices in the adjacency file to the indices of the atoms (and without some fixed mean of aligning atoms, this will never be possible). commit 2d4334de0df04fbf9bf9d9b86cdd57638d71e072 Author: Frederik Heber Date: Thu Mar 3 01:11:14 2011 +0100 Moved BuildInducedSubgraph from molecule into functor in Graph/. - BuildInducedSubgraph::ParentList has been reworked into map. commit dda246d334045cb752f130960f92fe011e0d85b8 Author: Frederik Heber Date: Wed Mar 2 00:23:25 2011 +0100 Made Helpers into commodity library to prevent double inclusion. - This is also preparatory for Makefile refactoring. commit d09093c691897e07d538a3b07ec8605572e2d8a9 Author: Frederik Heber Date: Tue Mar 1 15:22:07 2011 +0100 Moved all graph-related Actions into own folder Actions/GraphAction/. - added new graph menu to MenuDescription. - added new action menu Graph to CommandLineParser. commit 197e13d45cf228a9931bce7e6337668093466a83 Author: Frederik Heber Date: Wed Mar 2 14:31:11 2011 +0100 Added MenuDescription_ActionRegistry_ConsistenyUnitTest to check whether Actions have menus not listed in MenuDescription. - Menus may be added to Actions and there is so far no check on whether MenuDescriptions, i.e. the base for the menus of both QtUI and TextUI, knows about this Menu (it needs respective entries in three contained maps). commit 19290fc182f2d682bc1633033fa3d3bb37d1c9d0 Author: Frederik Heber Date: Wed Mar 2 14:12:54 2011 +0100 Added CommandLineParser_ActionRegistry_ConsistenyUnitTest to check whether Actions have menus not listed in CommandLineParser. - Menus may be added to Actions and there is so far no check on whether CommandLineParser knows about this Menu (it needs a respective program_options map). commit c6e5eb04bc75c10ffa001730944df215d101dbb7 Author: Frederik Heber Date: Wed Mar 2 15:40:38 2011 +0100 FIX: CommandLineParser::setOptions() added option_descriptions hard-coded. - this is prone to errors (which took us a while to find), instead all contained in CmdParserLookup are added to both visible and cmdline_options. commit 137ae140606b0df28861bb9c9f5359feb7c1bac3 Author: Frederik Heber Date: Wed Mar 2 14:32:43 2011 +0100 FIX: Made MenuDescriptionTest::ConsistencyCheck()'s failure message a bit clearer by giving missing token. commit 7d8aa0ed294faa7d4ce63827ae1a11ba140ffe4d Author: Frederik Heber Date: Wed Mar 2 14:11:04 2011 +0100 Typo in protecting define for MenuDescriptionUnitTest. commit efe5160ad303df71b958a8e888770461a77b5bae Author: Frederik Heber Date: Tue Mar 1 15:16:44 2011 +0100 Removed bond::nr. - has only been used by BreadthFirstSearchAdd. - changed BreadthFirstSearchAdd::AddedBonds into map. commit 2fa1dcc10971a1dc0e6a4500bbaec2e5135ac6ec Author: Frederik Heber Date: Fri Feb 25 23:49:02 2011 +0100 Removed regression folders Fragmentation/2ndOrder and ./MaxOrder. commit 49c059c36d49bc80016beb5b2ba5a56947f5f28c Author: Frederik Heber Date: Fri Feb 25 23:15:31 2011 +0100 Moved DepthFirstSearchAnalysis into functor in Graph/. Smaller fixes: - molecule::CorrectBondDegree() - does not rely on BondCount which was not necessary anyway. - DFS does not copy atoms or molecules anymore but reinitiates the current molecule structure with present atoms, used new class ConnectedSubgraph for that. New functions: - UpdateMoleculeStructure() - reinstantiates molecules. - getMoleculeStructure() - puts molecules into chained list. - adapted because of that: - DepthFirstSearchAction: uses DFS and CSA functors, also UpdateMoleculeStructure() such that CSA has current structure. - FragmentationAction: assumes connectivity fully present, DFS created. - SubgraphDissectionAction: uses DFS and UpdateMoleculeStructure(). - molecule::FragmentMolecule(): no more DFS, instead DFS has to happen beforehand and is given as parameter, used to obtain chained list for compatibility for the moment. - DepthFirstSearchAnalysis::SetNextComponentNumber() bugfix due to wrong assert. TESTFIXES: - Fragmentation and regression test Fragmentation/FragmentMolecule: FragmentationAction now needs SubgraphDissectionAction beforehand. - shifted id (down by one) due to non-copying (before: one big molecule, copied and split up system started at 1, now it starts at 0): - (Un)Selection/Atoms/AllAtomsOfMolecule - Analysis/SurfaceCorrelation - (Un)Selection/Molecules/MoleculeById (also renamed post-files accordingly) - (Un)Selection/Molecules/MoleculeByName commit 1a4d4fe643276ccfaf48040266dbe8e6b192ced2 Author: Frederik Heber Date: Fri Feb 25 22:26:03 2011 +0100 FIX: bond::~bond() checks whether the bond is a ring circle, leftatom == rightatom. - Unregistering the same atom again leads to seg'fault. commit e73ad9a5d1596d6e9a9f9c6a17bf256479595404 Author: Frederik Heber Date: Fri Feb 25 21:52:50 2011 +0100 Moved CyclicStructureAnalysis from molecule_graph.cpp into own functor in Graph/. - libMolecuilderGraph needed by libMolecuilderAction and libMolecuilder now. - replacing call to CyclicStructureAnalysis in molecule::FragmentMolecule() required removing MinimumRingSize from ::FragmentBOSSANOVA() and ::CheckOrderAtSite(). - replaced call in DepthFirstSearchAction. commit 2e4105630d51f1e775d9d45b32869bce5c038470 Author: Frederik Heber Date: Fri Feb 25 21:44:07 2011 +0100 molecule::erase() is only used by atom::removeFromMolecule(). - everywhere else -- even within molecule -- we call atom::removeFromMolecule(). - molecule::erase() is private, atom is friend to underline this. commit 0d9546d9326121813c893132980c5ec73e25ec7f Author: Frederik Heber Date: Fri Feb 25 21:35:47 2011 +0100 new function atom::unsetMolecule(). - is meant along with setMolecule() to be used by molecule only to allow for (un)setting mol reference. - atom::(un)setMolecule() is private. - AtomicInfo added also as friend to atom::setMolecule(). commit 1363de855fb482f9b1722a9ca5ef1aa1bde95a88 Author: Frederik Heber Date: Fri Feb 25 21:35:17 2011 +0100 DOCUFIX: atom - Moved all doxygen documentation to header file. commit 09ac12a511805f41520d52c772d21c17d8247458 Author: Frederik Heber Date: Fri Feb 25 21:04:45 2011 +0100 Added new class ConnectedSubgraph. - inherits list. - will be later used by DepthFirstSearchAnalysis. - mostly contains a function to generate a molecule from the contained atom list. commit 111387aec9ad3d775c5a8463dc8ce9dafad22cd6 Author: Frederik Heber Date: Fri Feb 25 22:01:16 2011 +0100 FIX: BreadthFirstSearchAdd header only includes GraphEdge, not bond anymore. commit 12920404e7a45c1ac4fe563b7c5a29891f5e662a Author: Frederik Heber Date: Fri Feb 25 20:58:54 2011 +0100 Moved bond.* to Bond/, new class GraphEdge which contains graph parts of bond. - enums Shading and EdgeType are now part of GraphEdge, hence bigger change in the code where these are used. commit 766ba546abe583269feb13496ad21d0857081c89 Author: Frederik Heber Date: Fri Feb 25 16:54:48 2011 +0100 bond::GetColor() is now static function bond::getColorName(). commit 53d6b265421d71dfd6355f93fe27b0b06473194f Author: Frederik Heber Date: Fri Feb 25 16:44:44 2011 +0100 Moved unused function BreadthFirstSearchAdd and subfunctions into functor in Graph/ - new commodity library libMolecuilderGraph and new subfolder Graph with own Makefile.am. commit 99752ac32a6b5b4b90ea6288654d966ac4421175 Author: Frederik Heber Date: Fri Feb 25 16:40:39 2011 +0100 Moved FillBondStructureFromReference from MoleculeLeafClass to molecule. commit c6123b29bfd4ed1187d08572debda704f114b2c4 Author: Frederik Heber Date: Fri Feb 25 16:22:51 2011 +0100 Moved FillListOfLocalAtoms() from MoleculeLeafClass to molecule. commit 341f2216a805ad9df99fc2dabe474ac6089179ff Author: Frederik Heber Date: Fri Feb 25 14:32:43 2011 +0100 Removed molecule_dynamics.cpp commit 435065d3d9c23062fca0bb67ff882fade26acced Author: Frederik Heber Date: Wed Mar 2 22:48:20 2011 +0100 Rewrote VerletForceIntegration into a functor in Dynamics/. - we now have the regression test working with checking against an integrated file which has not been checked though (just by eye and logged output to make sense, not against other code). commit eb33c4a913ab83436dbf30ab934797ec2d623036 Author: Frederik Heber Date: Wed Mar 2 22:40:51 2011 +0100 LinearInterpolationofTrajectoriesAction only interpolates, does not save. - This should make the action more versatile. - Saving generated paths can easily be done (and is done so for regression test) by a specific SaveSelected..Action. commit e355762f9447acb9c234eadd3df6adc314e5dee7 Author: Frederik Heber Date: Fri Feb 25 12:41:34 2011 +0100 Rewrote MinimiseConstrainedPotential to just use std::map instead of arrays. - MinimiseConstrainedPotential::operator() needs std::Map as parameter for PermutationMap. commit fe6f202b08255305d13ec735eddd6dc5bc8cdcf4 Author: Frederik Heber Date: Fri Feb 25 12:20:54 2011 +0100 New Action SaveSelectedAtoms and renamed SaveAction -> SaveSelectedMoleculesAction. - for molecules we have short cut "s", for atoms "S". - added regression tests for both: Atoms/SaveSelectedAtoms, Molecules/SaveSelectedMolecules. commit 8009ce8388c713891077297db7c3f7b0aa88b397 Author: Frederik Heber Date: Fri Feb 25 10:57:50 2011 +0100 Rewrote OutputTemperature into a functor in Dynamics/ - formerly called molecule::OutputTemperatureFromTrajectories(). - removed shortform of SaveTemperatureAction. commit 20943bae7a201e8b438123cacbc942e875e959a9 Author: Frederik Heber Date: Fri Feb 25 10:39:10 2011 +0100 Rewrote LinearInterpolationBetweenSteps into a functor in Dynamics/ - formerly called molecule::LinearInterpolationBetweenConfigurations(). commit 9e23a3785b6bdd916d370ba9157e9b76a1905c53 Author: Frederik Heber Date: Fri Feb 25 00:49:26 2011 +0100 Rewrote MinimiseConstrainedPotential into a functor in Dynamics/. - most of the stand-alone functions in molecule_dynamics.cpp have been moved to this functor as wel. - is used by both molecule::LinearInterpolationBetweenConfiguration() and molecule::VerletForceIntegration() for constrained dynamics. - MinimiseConstrainedPotential() works on molecule::atomSet for now. commit 632508ffb01a2e25577835bce4302a652209e479 Author: Frederik Heber Date: Mon Feb 28 17:11:28 2011 +0100 Moved files bondgraph.?pp -> Graph/BondGraph.?pp. commit 607eab6774ab70357425ace73b68c00a831b78da Author: Frederik Heber Date: Mon Feb 28 17:06:03 2011 +0100 BondGraph::...MinMaxDistance() now return range instead of ref as parameter. commit cff66ce85fbde649305dc9b561722a14ecc7a26c Author: Frederik Heber Date: Mon Feb 28 16:16:58 2011 +0100 Removed bool is Angstroem from all BondGraph::...() member functions. - we set IsAngstroem in constructor, and that's it. commit 111f4abc5bb4e30485671304b58753988cb819bf Author: Frederik Heber Date: Mon Feb 28 16:14:28 2011 +0100 Const-ness and cosmetic fixes to class BondGraph. - made CreateAdjacency and connected functions const members. commit 0ec7fe4ea1bdaeb2d3d9ac09962de0ea7fc2bdcd Author: Frederik Heber Date: Mon Feb 28 16:11:16 2011 +0100 Removed BondGraph::max_distance along with getter and setter. - SetMaxDistanceFromCovalentDistance() was nonsense and prone to faults and misunderstandings. - instead getMaxPossibleBondDistance() returns upper cutoff limit based on a given atomset. commit 300220077f0507b7ef3d400de839792167c20b51 Author: Frederik Heber Date: Mon Feb 28 16:00:34 2011 +0100 BondGraph::..MinMaxDistance() changed to use range. - requires CodePatterns 1.0.13 due to operator<< (range) - all ...BondGraph::..MinMaxDistance() work on range, not two doubles. - only getMinMaxDistance(BondedParticle, BondedParticle, ...) available from outside. - new function getMinMaxDistanceSquared( ) for squared interval boundaries. - internal use element pointer: - getMinMaxDistance() - BondLengthMatrixMinMaxDistance() - CovalentMinMaxDistance() - getBondLength is now private and only unit tests are friends. commit 0cbad258eb8c0251e3a78b10e2b68fdd0a5d2791 Author: Frederik Heber Date: Sat Feb 19 00:39:44 2011 +0100 Moved molecule::CreateAdjacencyListFromDbondFile() over to BondGraph and made more flexible. - extended molecule::CreateAdjacencyListFromDbondFile() to also parse TREMOLO's dbond files. - BondFileAction now has two more options: skiplines and offset to control parsing, default values assure behavior as has been. - same way CreateAdjacencyListFromDbondFile() has these two options added also. - extended regression test Molecule/BondFile with unconnected PDB and dbond file. commit 3738f09a1261e51cc253cbaa8f4766bb8f945d68 Author: Frederik Heber Date: Sat Feb 26 01:10:05 2011 +0100 Moved molecule::CreateAdjacencyList over to class BondGraph. to make this possible we had to: - enhance AtomSet such that individual const_ and iterator are templated. - FIX: FragmentationCreateAdjacencyAction needs to call BondGraph::SetMaxDistanceToMaxOfCovalentRadii() before getMaxDistance() is valid. - new function molecule::getAtomSet() which copies the internal atomSet to a vector AtomSetMixin and delivers. This is needed as PointCloudAdaptor needs a reference to a AtomSetMixin and we don't want to expose the internal set. other changes: - the following Actions do not create adjacency beforehand anymore: - DepthFirstSearchAction - MoleculeSaveAdjacencyAction - MoleculeSaveBondsAction - changes to BondGraph: - removed CreateAdjacencyForMolecule() - removed SetMaxDistanceToMaxOfCovalentRadii() - new function CreateAdjacency on LinkedCell reference - new BondGraph functions that work on AtomSetMixin reference: CreateAdjacency(), cleanAdjacencyList(), CorrectBondDegree(), resetBondDegree(), calculateBondDegree() TESTFIXES: - the regression test for all Actions mentioned above that don't create adjacency themselves anymore needed to be prepended with --select-all-atoms --create-adjacency. commit ce5f05ae4a35676c52abcb1eeb3e6e41b8849333 Author: Frederik Heber Date: Fri Feb 18 17:24:28 2011 +0100 Moved Shading and EdgeType from defs.hpp to bond.hpp, getColor from molecule to class bond. commit 4092c5c78798e52e100ca3ce7dfd3bfd5abc6ebb Author: Frederik Heber Date: Mon Feb 21 18:54:26 2011 +0100 Changed BondGraph::...MinMaxDistance()'s parameters to const BondedParticle * const. - this is preparatory for upcoming PointCloudAdaptor change. commit b9772ac7019d5e8e80610d7bb4890ee0d7b80b2b Author: Frederik Heber Date: Thu Feb 24 15:10:59 2011 +0100 Renamed function pointer in molecule::CreateAdjacencyList to minmaxdistance. commit 4b5cf883862ad96db12b381ddaf008aad10edbe4 Author: Frederik Heber Date: Mon Feb 21 14:13:04 2011 +0100 BondedParticle::OutputBondOfAtom() now takes stream to print to. commit 458c3163eb1df36b974240aa85d9aa341ad4408a Author: Frederik Heber Date: Mon Feb 21 14:02:57 2011 +0100 molecule::BondCount is now Cachable and private. - renamed CountBonds() -> doCountBonds in analogy to AtomCount. commit d4a44c33452f58b4160eb88383f4287dfc249470 Author: Frederik Heber Date: Mon Feb 21 15:04:46 2011 +0100 Renamed ConstructBondGraphAction -> CreateAdjacencyAction. commit 715b678cb8ad05a00a33a86ee0b1583591a34ff1 Author: Frederik Heber Date: Fri Feb 18 15:43:09 2011 +0100 Renamed BondGraph::ConstructBondGraph -> CreateAdjacencyForMolecule. - first step in moving CreateAdjacencyList over to class BondGraph. commit 7adf0f0365b80d1ba77645d14621706d522f8573 Author: Frederik Heber Date: Fri Feb 18 15:28:52 2011 +0100 Removed molecule::BondDistance, replaced by BondGraph::getMinMaxDistance(). - changed in: - molecule::AddHydrogenReplacementAtom() - StoreFragmentFromKeySet_Init() - molecule::DeterminePeriodicCenter() - molecule::CreateAdjacencyList() commit e7350d47f72235f2bf1666ed2a77b529c06832a4 Author: Frederik Heber Date: Fri Feb 18 15:27:56 2011 +0100 DOCUFIX: BondGraph - moved doxygen comments from cpp to header. commit 72d90ed8a430eeb713d9ac53bb337fd6e8d4b404 Author: Frederik Heber Date: Fri Feb 18 15:24:43 2011 +0100 New function BondGraph::getMinMaxDistance(). - Covalent and BondLengthMatrix criteria are hidden behind that depending on whether the bond length matrix is set or not. - now private: - BondGraph::CovalentMinMaxDistance() - BondGraph::BondLengthMatrixMinMaxDistance() - adapted: - FragmentationConstructBondGraphAction - FragmentationDepthFirstSearchAction - FragmentationFragmentationAction commit f71bafdd0857cf18158866b8a7878c1b33d586b6 Author: Frederik Heber Date: Fri Feb 18 11:42:01 2011 +0100 Made BondGraph an instance of World, removed from config. - BondGraph is instantiated from start of World and destroyed therein. - new getter and setter for BondGraph in World. - rewritten BondLengthTableAction. commit 5309ba2259d81aba279e4520a5ebc51c898d8b75 Author: Frederik Heber Date: Tue Feb 22 10:59:11 2011 +0100 Renamed ParticleInfo_nr back to Nr. - Note that this mostly affected comments. commit 735b1c1514f0f9ac27c1a3ef683b9fa6ea2cf010 Author: Frederik Heber Date: Tue Feb 22 01:15:33 2011 +0100 ParticleInfo::ParticleInfo_nr is protected and accessed via getter/setter. - many changes (~400) in molecule- and tesselation-related functions. commit a479fa6f7cb1bddf84d6c12af3c09dc810b66580 Author: Frederik Heber Date: Tue Feb 22 00:50:41 2011 +0100 Renamed ParticleInfo::nr to ParticleInfo::ParticleInfo_nr for easier privatization. commit 5702cdb754fb52d78cf83a79c432e91bd88f4d4c Author: Frederik Heber Date: Thu Feb 24 23:07:45 2011 +0100 Removed molecule_pointcloud.cpp. commit caa06ef709f013cc367466c6e351f0a834a0fc0d Author: Frederik Heber Date: Tue Feb 22 00:49:30 2011 +0100 Added name to PointCloudAdaptor, set by constructor. - name is used in Tesselation to store in file and difficult to obtain via the PointCloud (e.g. std::list have not name, need to be wrapped again, ...) - removed expected-to-fail again from Tesselation/Convex, Tesselation/NonConvex, and Tesselation/BigNonConvex tests. commit 34c43ab2d4d21658cd8b9c3134bf2f845cacdcfc Author: Frederik Heber Date: Mon Feb 21 19:02:41 2011 +0100 Bigger change: Replaced PointCloud by PointCloudAdaptor. - PointCloud is no more inherited by classes molecule and Tesselation but an interface to an (templated) adaptor called PointCloudAdaptor. - As BoundaryPointSet only wraps TesselPoint member, we needed - use CodePatterns/IteratorAdaptors.hpp to access the value (TesselPoint*) in the map Tesselation::BoundaryPointSet, requiring now v1.0.11. - lots of places in Actions, Tesselation, and boundary had to be adapted to the new PointCloudAdaptor. - LinkedCell also now only has constructor requesting a IPointCloud structure. - this all will make BondGraph construction a lot easier (note that World has map containing atoms, where molecule has list. Hence, we need this IteratorAdaptor). - TESTFIX: Marked Tesselation/Convex, Tesselation/NonConvex, and Tesselation/BigNonConvex as expected to fail due to wrong name in teecplot file. This is gonna be fixed in next issue. commit ba5215d3dbc9e6ab23c70d0fda53db52f4cd8547 Author: Frederik Heber Date: Mon Feb 21 19:00:37 2011 +0100 Extended BoundaryPointSet by functions to directly access TesselPoint member. - new functions: GetTesselPoint(), getPosition(), getNr(). - TesselPoint extended by getTesselPoint(), returning this reference, is only required due to BoundaryPointSet only having member and we need to access the TesselPoint via a iterator concept in upcoming PointCloudAdaptor directly. commit fa60dd6ab972774fb82fd1f2c954d36536b47b41 Author: Frederik Heber Date: Mon Feb 21 18:55:39 2011 +0100 Removed molecule::GetName() usage in QtMoleculeView. - in QTMoleculePage::update() and QtMoleculeView::moleculeSelected(). - this is prepatory for upcoming PointCloudAdaptor and PointCloud removal from molecule. commit fff733ba0da4911da79885991c417b12b441b071 Author: Frederik Heber Date: Fri Feb 18 22:47:30 2011 +0100 Fixed PointCloud implementation in class Tesselation. - removed virtual keywords in class Tesselation definition. - implemented GetMaxId(). - GetCenter() different to interface PointCloud had parameter ostream, removed. commit e34254f6f44a0fc809b9be46216b2b2b7751e710 Author: Frederik Heber Date: Tue Mar 1 10:57:21 2011 +0100 Changed operator<< (AtomInfo), less verbose for single time step. commit 4d5553190df6b00219ae526683b5f0c395269db2 Author: Frederik Heber Date: Tue Mar 1 10:56:05 2011 +0100 Changed verbosity for LoadMolecule(). commit b23e2638588a1ce300fdbc376e3b3e42c6fd02b0 Author: Frederik Heber Date: Wed Feb 23 18:50:29 2011 +0100 Added operator<< for MatrixContainer class. commit 1bfc8edf28ec4138bd64215de19458a5fb6de8ab Author: Frederik Heber Date: Fri Feb 18 11:41:00 2011 +0100 Removed ThermostatContainer instance from config, instance from World is used. - config functions obtain instance Thermostats from World. commit 9b8387bbe8a066a5a05ebfc59629199ffa203cb1 Author: Frederik Heber Date: Wed Feb 16 11:18:51 2011 +0100 DOCUFIX: enhanced description of RotateAroundSelfByAngleAction's parameters. commit 9d37ac94df87f79ff09b0742de1324c7e04ddf56 Author: Frederik Heber Date: Thu Feb 24 15:39:14 2011 +0100 DOCUFIX: Removed *out as parameter from waaay back ... commit 4afa469aea6b6b679ff56ab7e5839c913cb3c602 Author: Frederik Heber Date: Sat Feb 26 01:06:01 2011 +0100 Added call to molecule::getAtomCount() to end of each parser's ::load(). - this ensures that atom::nr and name is up-to-date. commit 63735800b9b9f1a62b08bbaad51b2f7a1bec8c00 Author: Frederik Heber Date: Sat Feb 19 00:38:44 2011 +0100 Changed slightly XyzParser::load(). - AddedAtoms is now a vector. commit 0180d65014cd485abba4217d46346ac7065712ed Author: Frederik Heber Date: Fri Feb 18 19:50:08 2011 +0100 Enhanced XyzParser to load and save multiple time steps. - Extended regression test Parser/Xyz. - Extended unit test ParserXyzUnitTest. commit c6aeb18b62d4b842084aa91283b2e0fb0461c6b1 Author: Frederik Heber Date: Wed Feb 16 13:43:40 2011 +0100 Added regression test for Parser/Pdb for PDB files with CONECT entries. commit 48801adac3e7e09310f1b6015d415ba05afd6d61 Author: Frederik Heber Date: Thu Feb 24 15:42:38 2011 +0100 Decreased verbosity of PdbParser for multiple time steps. - using AtomInfo's adapted operator<< that prints start and end only. commit 3e383d399707efe3ee0cb56bc0d78abc3af2ca70 Author: Frederik Heber Date: Thu Feb 24 15:34:43 2011 +0100 Removed PdbKey::timestep from PdbAtomInfoContainer as readNeighbors,readAtomDataLine are with step now. commit b0a2e3bef0fc1ae84db5824e8cd3fa72d2a5bf21 Author: Frederik Heber Date: Thu Feb 24 21:18:39 2011 +0100 Removed use of PdbKey::timestep, steps are parsed sequentially. - PdbParser::readAtomDataLine() and PdbParser::readNeighbors() have additional parameter steps. commit 09c7a9f369617114ccfc84cd12692ecd98a2c615 Author: Frederik Heber Date: Thu Feb 24 15:17:12 2011 +0100 VERBOSE: PdbParser::save() print parsed trajectories. commit 873037b34219cd2ee7dadacca5869547533b1f56 Author: Frederik Heber Date: Fri Feb 11 10:11:32 2011 +0100 Refined static filling of PdbAtomInfoContainer::knownDataKeys. - have static bool which says whether map is filled or not. - static clearknownDataKeys() called by PdbParser's dstor. commit 9dba5f7e07c3f2a1265a0dfae56599d0c6a08e26 Author: Frederik Heber Date: Thu Feb 10 23:01:26 2011 +0100 PdbParser can now load and save multiple time steps. - WARNING: Molecules are not yet updated, it only works on simple test. - TEST: Parser/Pdb regression test on loading/storing multiple steps added. - PdbAtomInfoContainer: - private static knownDataKeys map from enum to strings, filled in cstor when empty by fillknownDataKeys() and cleared by befriended PdbParser's dstor. - operator << to easily print container. - getter function getDataKey. - PdbKey: - EndOfFile -> EndOfTimestep. - new DataKey timestep to allow storing of timestep. - Pdbparser: - extended load() and added verbosity. - readAtomDataLine() can parse trajectories into present atoms. - extended save() and added verbosity. - new helper functions getAtomToParse() and readPdbAtomInfoContainer(). commit fcac720d9b6b26c107f65986d20e213556f266e5 Author: Frederik Heber Date: Thu Feb 24 13:48:45 2011 +0100 Added multiple time steps to PcpParser::OutputAtoms(). - removed Fastparsing part in comments in LoadMolecule(). commit 6a465e4248cc6569f489730a4176224357fc5126 Author: Frederik Heber Date: Thu Feb 24 12:20:52 2011 +0100 Rewrote LoadMolecule() for PcpParser. - LoadMolecule() rewritten as only because of getter/setter introduction the PcpParser did not work properly anymore. Used boost::tokenizer for parsing all Ion_Type stuff. - TESTFIX: Molecules/SaveTemperature - has been buggy since a long time! LoadMolecule() did the messed up sequence of Ion_Type right only for the first step not for all subsequent steps. Hence, we lacked the velocities of all non-hydrogen atoms and obtained a different (wrong) temperature. - TESTFIX: ParserPcpUnitTest made first atom at (1,0,0) instead of (0,0,0) as this rather shows up parsing errors than zero vector which is default value. commit 03c77c8433e48594a1c472d7a86b4e799d81c363 Author: Frederik Heber Date: Wed Feb 16 15:02:14 2011 +0100 bonds::previous and ::next removed, lists.hpp deleted. - the last of the concatenated lists has fallen to STL lists and vectors. - greatest impact is on fragmentation functions. - rewritten UniqueFragments::BondsPerSPList to vector >. - removed include of lists.hpp. - removed lists.hpp from Makefile.am. commit 8aba3cf36e533e8aa7e73d15c6c4a093625770cf Author: Frederik Heber Date: Thu Feb 24 15:33:18 2011 +0100 TEST: Extended ListOfBondsUnitTest for multiple time steps ListOfBonds checking. commit af897f5c8ae6115ef8c2ea41ec18740adb18eaf0 Author: Frederik Heber Date: Thu Feb 24 16:13:41 2011 +0100 Small change to BondedParticle::UnregisterAllBond(). - As ListOfBonds is only protected, BondedParticle::UnregisterAllBond() may access list at step directly. commit 58308193c86ef72a50785b82954ae67c62555f30 Author: Frederik Heber Date: Thu Feb 24 16:13:07 2011 +0100 New function BondedParticle::ClearBondsAtStep(), used by MoleculeLeafClass::FillBondStructureFromReference(). commit 38c44b50db18b128b1f79878f0bfc914bd7228fe Author: Frederik Heber Date: Thu Feb 24 16:26:11 2011 +0100 Added verbosity to AppendTrajectoryStep() of BondedParticle. commit 1e6249eb2248ee72299523a569acc77b83efcb60 Author: Frederik Heber Date: Thu Feb 24 15:50:47 2011 +0100 BondedParticle has virtual UpdateSteps() to allow consistent extending of trajectories. - atom::UpdateSteps() calls now not only UpdateSteps of AtomInfo but also of BondedParticle. commit 073a9e455fb766186d4ee793eade170e51db2c0c Author: Frederik Heber Date: Thu Feb 24 15:32:36 2011 +0100 BondedParticle::(Un)RegisterBond,AddBond,IsBondedTo with step. - adding, removing and checking of bonds at a desired time step. commit d557374f0c843b5f8e4d8eeb8756784840b4ab07 Author: Frederik Heber Date: Thu Feb 24 15:56:28 2011 +0100 Cosmetic changes to class bond::~bond and BondedParticle::UnregisterBond. commit 93c6e95d641c6236fc420db0e7100f7b9cbef2fb Author: Frederik Heber Date: Thu Feb 24 15:13:00 2011 +0100 BondedParticle::UnregisterBond() uses BondedParticle::ContainsBondAtStep() with step. - ContainsBondAtStep() is used to find the right bond and remove it. commit 9a3a53e116a51e3bfb00959b2168c8888ced7191 Author: Frederik Heber Date: Thu Feb 24 19:59:11 2011 +0100 BondedParticleInfo::ListOfBonds is (just) protected to allow inheriting classes access. commit a2bdbe5a31d9df8092c716db0d9ec503f5ad04cb Author: Frederik Heber Date: Thu Feb 24 15:09:27 2011 +0100 BondedParticle::UnregisterAllBond with new parameter step. - cleans ListOfBonds at desired step. commit 9d83b69ef70cf27f82b8fcaaf764866bcda9a143 Author: Frederik Heber Date: Thu Feb 24 15:41:13 2011 +0100 BondedParticleInfo now has vector - vector ListOfBonds is private, getter for (non-)const access. - Access everywhere to ListOfBonds replaced by respective getter. - Access is as of now always to time step zero. - greatest impact is on molecule... files, and ListOfBondsUnitTest. commit c0d9ebc6c65d3d9cc5fc8234ff04f147c042c124 Author: Frederik Heber Date: Thu Feb 24 15:06:53 2011 +0100 FIX: Moved BondedParticle::CountBonds() from atom.cpp to atom_bondedparticle.cpp. commit fb9eba56a801211c0f27284432416dfa281858d2 Author: Frederik Heber Date: Thu Feb 24 16:25:56 2011 +0100 Added verbosity to AppendTrajectoryStep() of AtomInfo. commit e2373df507fb916476ab8df9646079e2551e04f2 Author: Frederik Heber Date: Thu Feb 24 15:48:51 2011 +0100 TesselPoint, Atom and AtomInfo have virtual UpdateSteps() to allow consistent extending of trajectories. - TesselPoint and Atom just implement it virtually. - AtomInfo implements it by new function AppendTrajectoryStep() that adds steps. commit fb0b62770f84f722e7a844612b7cf575bb534f0e Author: Frederik Heber Date: Thu Feb 24 15:49:35 2011 +0100 AtomInfo: Commented-out operator* and *= with double. - this is preparatory for virtual AtomInfo::UpdateSteps(). commit 443547ef85f9f10bd39602b49607dcb0e763fc55 Author: Frederik Heber Date: Sat Feb 12 19:29:48 2011 +0100 AtomInfo: AtomicPosition, ..Velocity, ..Force are protected to allow inheriting classes access. - This is necessary for atom::clone() have access to full trajectory. commit b1a5d9e1f506282abb82d0dc29746c490b4f3522 Author: Frederik Heber Date: Thu Feb 24 15:43:21 2011 +0100 operator<< for AtomInfo now prints just start and end of timestep. commit 1b558c94a455c9a61f4f1954f9b8d7b149b1532f Author: Frederik Heber Date: Fri Feb 11 10:25:16 2011 +0100 All Accessor to position, velocity or force use WorldTime::CurrentTime. commit 6b020f24f85828b35cb7d1e2cb4137d9b9ad39e1 Author: Frederik Heber Date: Thu Feb 24 14:24:46 2011 +0100 AtomInfo::getter and setter's step is now unsigned int. commit 056e70f8db18805ec5c34898e22ee461a1e6ceb7 Author: Frederik Heber Date: Thu Feb 24 18:56:03 2011 +0100 Suffixed getters and setters for AtomInfo trajecories with AtStep. - AtomInfo:: getters are now const members - added lots of ASSERTS to getters with time step to assure no out-of-bounds access. commit 6625c3d80c1d7b0bad97e9d543982f10829d358b Author: Frederik Heber Date: Thu Feb 24 12:18:59 2011 +0100 Removed atom_trajectoryparticle*, replaced by AtomInfo class now having std::vector<> for trajectories. AtomInfo: - AtomInfo stores position, velocity, and force in vectors. - getter and setter implemented for velocity and force. - all functions from TrajectoryParticle put into AtomInfo. - Direct access to velocity and force exchanged by getter/setter everywhere. - FIX: molecule::LinearInterpolationBetweenConfiguration() extends trajectory to MaxSteps+1 (for endstep). Other changes: - gsl_rng_gaussian() exchanged by boost::random specific type. commit 54b42e9e210027bb6e47d8594317475629bdb453 Author: Frederik Heber Date: Mon Feb 7 19:56:11 2011 +0100 AtomInfo::AtomicPosition, ::AtomicVelocity, ::AtomicForce are now a std:vector. - This is preparatory for trajectories. commit bce72cbbc8d98307d21f1b4cd8f174336341e927 Author: Frederik Heber Date: Mon Feb 7 19:35:30 2011 +0100 AtomicInfo::AtomicVelocity and ::AtomicForce are now private. - Access is granted via getters and setters. commit c864a86df7c305c97952030b2f51ac5148ffcce3 Author: Frederik Heber Date: Mon Feb 7 18:58:50 2011 +0100 Moved TrajectoryParticle::EvaluateConstrainedForce() into molecule::EvaluateConstrainedForces(). commit 76163d6467c1ce116865eff7bd937b783a980bc7 Author: Frederik Heber Date: Wed Feb 16 11:19:36 2011 +0100 World::setTime() now checks whether CurrentTime changes at all. - this prepares calling FragmentSubgraphDissection call there. commit d297a3ade933149a1d5ada1c3db8b483e89fb3ca Author: Frederik Heber Date: Fri Feb 11 23:28:17 2011 +0100 World::setTime() is single access point to modifying WorldTime::CurrentTime. commit 6bb6057aa21db4fa1c6005eaa7f932cd8e2c9875 Author: Frederik Heber Date: Fri Feb 11 10:12:36 2011 +0100 Worldtime now has static CurrentTime and static (inline) getter/setter. - setter is private such that time is not globally modifiable. - WorldTime::CurrentTime is now _unsigned_ int. - TESTFIX: WorldTimeUnitTest also against unsigned ints. commit aa04aec0a6f98bba03446ef81b876c0dee5f6db8 Author: Frederik Heber Date: Mon Feb 7 14:23:52 2011 +0100 Implemented SetWorldTimeAction and regression test on that. - SetWorldTimeAction currently only allows to change current time, not step width. commit f649ded43f091c7788ac076fc2e73fb8fee4bd35 Author: Frederik Heber Date: Mon Feb 7 14:12:01 2011 +0100 Implemented class WorldTime. - WorldTime contains the current, globally valid time step, e.g. to show within the gui ... commit 7a51bed0ac43de73ef69542c07ec8d25a2b6d4cc Author: Frederik Heber Date: Fri Feb 11 22:37:26 2011 +0100 new function FormatParserStorage::get to obtain specialized FormatParser instance. - used in FillVoidWithMoleculeAction and FillWithMoleculeAction. - both Actions also now use MoleculeByOrder descriptor to obtain last molecule. - FillBoxWithMolecule() now returns void. - implemented FillVoidWithMoleculeAction::performUndo(). - TEST: Filling/FillWithMolecule - added undo test. - TESTFIX: Filling/FillVoidWithMolecule - due to loading of filler molecule with parser, water.data had to be adapted in its ATOMDATA line to match test.data. Otherwise, resulting file will have non-matching ATOMDATA although being otherwise consistent. (This is a workaround to ticket #141). commit 170ba6e440672fc3912107325618abdd35c6437e Author: Frederik Heber Date: Fri Feb 11 21:55:44 2011 +0100 BUGFIX: MoleculeOrderDescription was not working in reverse because of bug in ObservedContainer. - we now require v1.0.9 of Codepatterns where bug in ObservedContainer is fixed. - TEST: added regression test Selection/Molecules/MoleculeByOrder with separate forward and backward test. - TEST: split up Selection/testsuite file into one on atoms, the other on molecules. commit 69948e5f49ca5ca15fa7f148e0e7d53f7f814866 Author: Frederik Heber Date: Fri Feb 11 18:55:25 2011 +0100 BUGFIX: FillVoidWithMolecule() crashed when filling molecule is wholly outside of domain. - Filling molecule might have gotten completely removed and hence, we have to check for NULL pointer. - bug reported by Daniel Dueck. commit 844b2e3be80de8690beefc6f7dcd4b178159cf8c Author: Frederik Heber Date: Thu Feb 10 19:40:18 2011 +0100 We now require CodePatterns v1.0.8 for LOG() shorthand to logger and asserts aborting by default. commit 23d7fff4124bc4e1f444a780def098bb6b68e508 Author: Frederik Heber Date: Thu Feb 10 19:35:12 2011 +0100 Added default rotation angles to (Not)AllAtomsInsideCuboidAction. - also added check to Action cstor such that options for different Actions still have type, same short form, and default value. - TEST: Selection/Atoms/AllAtomsInsideCuboid - new regression test with defaults. commit 528b3e649ba6df7f9bb48df7750426f110ae4f92 Author: Frederik Heber Date: Thu Feb 10 19:31:41 2011 +0100 Added conversion functions to VectorValue and BoxValue and changed internals. - VectorValue now has array vector instead of x,y,z. - BoxValue now has array matrix instead of xx,yx,yy,zx,zy,zz. - adapted validate()'s, Vector(s)CommandLineQuery, and BoxCommandLineQuery. - new cstor Box(RealSpaceMatrix *). - restructured Box' cstor code a bit. - new operator<< for Box. commit b6b3b2db19444a7431f85964bdb2550a87243367 Merge: 0bfe731 311da7b Author: Frederik Heber Date: Thu Feb 10 20:08:22 2011 +0100 Merge branch 'MpqcParser_fixes' into stable commit 0bfe73198acf0b25ec0a7bb4d1fbea55f5b248d1 Merge: acd6384 c14c78b Author: Frederik Heber Date: Thu Feb 10 20:07:17 2011 +0100 Merge branch 'RandomNumber_fixes' into stable commit 311da7bdf02dce8825b29e60fbe79e0688c15ca6 Author: Frederik Heber Date: Thu Feb 10 19:36:56 2011 +0100 FIX: Changed MpqcParser. - some ASSERTs were missing and showed up failure in parsings. - in MpqcSection keywords molecule and basis are now ignored. - BUGFIX: due to missing whitespacefilter most of the keys were actually not really parsed which lead to strange "A'" and ""A'"" behavior, because in unit test key was without whitespace, hence recognized (and there we switch theories from CLHF parsed file only), whereas in regression test key was not recognized. - TESTFIX: ParserMpqcUnitTest - now checks whether MpqcParser_Parameters:: getInt() throws and also if ::operator>> throws in case of debugging. commit c14c78b2ee8b6b53c94294861301c8b2cdcc1161 Author: Frederik Heber Date: Thu Feb 10 16:25:59 2011 +0100 Some bugfixes for RandomNumber... stuff. - BUGFIX: Asserts contained wrong variable name: params -> paramtokens. - BUGFIX: replaced forward declarations in respective Factory's to ...Engine and ..Distribution by includes. Note that they are need in other files due to inclusion of ManipulatePrototypeFactory and alikes of CodePatterns. - Added some additional ASSERTs to ...Engine... and ...Distribution_Parameters. - TESTFIX: RandomNumberEngineFactoryUnitTest - Setting seed to 0 was not allowed for this engine. - LEAKFIX: SetRandomNumbersDistributionAction::performCall() leaked a parameter set from prototype. commit acd6384437ea7f3b26a729204e334bc1069b111a Author: Frederik Heber Date: Wed Feb 9 21:03:34 2011 +0100 BUGFIX: copied atoms were not correctly stored with respect to Type, reported by Daniel Dueck. - TremoloParser::saveLine() Father-check has been missing so far. - TEST: Molecules/Copy - added test for copying from tremolo config. commit 4d4d3346f69d10a12e419ef86b730fdd6a4ec2a1 Author: Frederik Heber Date: Wed Feb 9 17:18:50 2011 +0100 Added tremolo's potential file parsing, reported by Daniel Dueck. TremoloParser cannot interpret Type with HLA2 because it lacks mapping of the value to an element. Hence, ... - new Action ParseTremoloPotentialsAction. - TremoloParser::knownTypes new map to contain: HLA2 -> H, ... map. - TremoloParser::createKnownTypesByIdentity() creates identity mapping. - TremoloParser::parseKnownTypes() parses potentials file. commit 1a6bda5f924ebd715e1f7b6b804f62142360552f Author: Frederik Heber Date: Fri Feb 4 15:04:23 2011 +0100 Removed basis from config, which now resides in MpqcParser_Parameters. commit 4cbca0e8710efb136e5936feefe9dd2e7a865873 Author: Frederik Heber Date: Fri Feb 4 15:03:06 2011 +0100 Implemented full MpqcParser::load(). - regression tests for four theories: CLHF, CLKS, MBPT2, MBPT2_R12. - extended regression test on set-mpqc-parameters by checking changed value against a written file. commit 963321a9c39219a067721dc5f8f1bf433d2e0e92 Author: Frederik Heber Date: Fri Feb 4 14:23:20 2011 +0100 Converted SetGaussianBasisAction into SetMpqcParametersAction. - new actions does not only allow to set basis, but most of the other parameters, too. - regression test Parser/Mpqc-SetBasis -> Mpqc-SetParameters and extended. - operator<< needed an ugly const hack to avoid doubling the function. commit 44fce5cb3fdeb1556c1c02a020dfa99136e835d7 Author: Frederik Heber Date: Fri Feb 4 13:43:30 2011 +0100 Extended MpqcParser_Parameters, can set and get all values. - new test case in ParserMpqcUnitTest: ParameterSetterTest. commit 61d69a4cb73f0b86aacc2d6ca57bf28462918da9 Author: Frederik Heber Date: Thu Feb 3 12:56:26 2011 +0100 Added MpqcParser_Parameter class to MpqcParser. - contains all extra info for the mpqc style config file. - so far not prepared for setting details via action. commit 9cff8b40dbce0e08a022e7778ac2e12db6f6b9b2 Author: Frederik Heber Date: Thu Feb 3 10:39:54 2011 +0100 Moved SetGaussianBasisAction and SetOutputFormatsAction from World to Parser. commit aa8ef2ac2cb67b09185d5a3df58db2a29f253ed6 Author: Frederik Heber Date: Wed Feb 2 21:39:54 2011 +0100 Implemented MpqcParser::load(). - extended ParserMpqcUnitTest to check minimal functionality of load. commit f31edc7590b4e5829926599185285edb1412d62d Author: Frederik Heber Date: Tue Feb 1 17:39:55 2011 +0100 Extended MpqcParser to write config files for all possible theory levels: CLHF, CLKS, MBPT2, MBPT2_R12. - ParserMpqcUnitTest tests all four cases now and each contained string with the config file has been tested to work with mpqc-3.0.0-alpha. commit bb74ba726668aa113942901b3b4e73e8786149c0 Author: Frederik Heber Date: Tue Feb 1 16:23:51 2011 +0100 MpqcParser now writes correct MP2 configuration. - while the construct has been working, maxiter was inside the wrong group. - ParserMpqcUnitTest and Parser/Mpqc and Atoms/Add, Atoms/Remove had to be changed due to literal diffs present there. commit 9e4fd1ddec881550116572abf3d4c0dedb07b1b8 Author: Frederik Heber Date: Wed Feb 2 20:38:08 2011 +0100 Split up ParserCommonUnitTest into a UnitTest for each Parser. commit 881c0591436d2892dfe4f605d06902bb7a21e338 Author: Frederik Heber Date: Wed Feb 2 19:41:47 2011 +0100 Changed regression testsuite structure of Tesselation. - all numbered test cases now have meaningful names. - re-activated big convex test and marked as expectedly fail. commit b5ad3937b230f3d9f5d14f9e793a837b44de0486 Author: Frederik Heber Date: Wed Feb 2 18:45:44 2011 +0100 Removed Simple_configuration testsuite. - removed test on creation of xyz file, is present in Parser/Xyz. commit 2700983eab89463c26130cc0d2c853f1d4d13c02 Author: Frederik Heber Date: Wed Feb 2 18:35:28 2011 +0100 Extended regression testsuite structure of Options from standard_options. - most of the stuff is from standard_options, placed each into own folder and each test into its own module. commit d445e4bcef716346dd1b3a5d6c4fe27dd4b70f74 Author: Frederik Heber Date: Wed Feb 2 18:19:04 2011 +0100 Changed regression testsuite structure of Atoms. - All atom-related stuff from Simple_configuration has been moved over to new subfolder Atoms. commit f2230ed4cddad16052b0be557fd8f58130a361a2 Author: Frederik Heber Date: Wed Feb 2 15:21:29 2011 +0100 Changed regression testsuite structure of Parser. - specifics placed in Parser subfolder. - Moved Simple_configuration/2 over to Parser and splitted each Parser off into its own subfolder. - added test for Tremolo parser. commit 0a2b3405b30a5c56bc3bf3a9c26ef22143e4a683 Author: Frederik Heber Date: Wed Feb 2 15:19:19 2011 +0100 Changed regression testsuite structure of Options. - standard_options placed in Options subfolder. commit b9bfa63421aae8bda04dea61800ff9fe25d337b5 Author: Frederik Heber Date: Wed Feb 2 15:09:44 2011 +0100 Changed regression testsuite structure of Selection/Atoms and ../Molecules. - all numbered test cases now have meaningful names. - (Un)Selection/Molecule action renames: by-formula and by-name have plural molecules (they can select multiple ones), by-id is singular. - renamed token of AtomAction/RotateAroundOriginByAngleAction: rotate-origin -> rotate-around-origin. - TESTFIX: Analysis/AngularDipoleCorrelation-Empty due to renaming of molecule_s_-by-formula - TESTFIX: Analysis/SurfaceCorrelation due to renaming of molecule_s_-by_formula commit 967b3cc1d5bcc09f04bc4e2f99bb7620de669545 Author: Frederik Heber Date: Wed Feb 2 14:39:15 2011 +0100 Changed regression testsuite structure of Molecules. - all numbered test cases now have meaningful names. - renamed token of AtomAction/RotateAroundOriginByAngleAction: rotate-origin -> rotate-around-origin. - renamed token of LinearInterpolationofTrajectoriesAction: linear-interpolate -> linear-interpolation-of-trajectories. - renamed token of RotateAroundSelfByAngleAction: rotate-self -> rotate-around-self. - renamed token of RotateToPrincipalAxisSystemAction: rotate-to-pas -> rotate-to-principal-axis-system. - renamed token of VerletIntegrationAction: verlet-integrate -> verlet-integration. - re-added test for periodic translation (was Molecules/7 but unused). - TESTFIX: Analysis/AngularDipoleCorrelation-DiscreteAngles due to renaming of rotate-around-self. commit 70269a5925ba82007a722de93f0b9207048e59be Author: Frederik Heber Date: Wed Feb 2 14:00:36 2011 +0100 Changed regression testsuite structure of Graph. - all numbered test cases now have meaningful names. - renamed token of SubgraphDissectionAction: subgraph-dissect -> subgraph-dissection. commit 7811bfbefd39871560750cd667c077688c37af6e Author: Frederik Heber Date: Wed Feb 2 13:53:11 2011 +0100 Changed regression testsuite structure of Fragmentation. - all numbered test cases now have meaningful names. - renamed token of FragmentMoleculeAction: fragment-mol -> fragment-molecule. - removed test case 1 where test.conf is checked, this is made sure elswhere. commit 08e6c8afef22dd16b9fe558118d4f67b0618a650 Author: Frederik Heber Date: Wed Feb 2 13:41:45 2011 +0100 Changed regression testsuite structure of Filling. - all numbered test cases now have meaningful names. - TESTFIX: Suspend in water is now marked to expectedly fail instead of as BROKEN. commit 8a957e8b6a87527326d7123e0d60c7848a69a814 Author: Frederik Heber Date: Wed Feb 2 13:35:23 2011 +0100 Changed regression testsuite structure of Domain. - all numbered test cases now have meaningful names. - renamed TOKEN of AddEmptyBoundaryAction: boundary -> add-empty-boundary. commit ad28ef1b99395d16be5653d1e9ae8d6d66d16083 Author: Frederik Heber Date: Wed Feb 2 13:01:01 2011 +0100 Changed regression testsuite structure of Analysis. - all numbered test cases now have meaningful names. - PairCorrelation range test split off (needs its own directory anyway). commit f0d1f071d10979518f405b8b6b011c4a03c4b6a3 Author: Frederik Heber Date: Tue Feb 1 16:24:57 2011 +0100 Inserted manner how to avoid warning about muplitply included CheckCommand.sh, but commented out. - thx Ralf, but is yet not working due to autotest bug. commit a947e9a19899361083696b2380e242777199a425 Author: Frederik Heber Date: Wed Feb 2 10:41:35 2011 +0100 Verbosity added to Load- and InputAction. commit 48d43fef6fd364948bcdc9509ae49364f5edc942 Author: Frederik Heber Date: Wed Feb 2 10:51:29 2011 +0100 molecule::FragmentMolecule() - Bond degree is now re-calculated by default. - if we load bond graph from file (e.g. pdb), bond degree is not given and set to 1 by default which may not be correct. As bond degree is very important to the fragmentation, we rather re-calculate it before fragmenting. commit 4c264326bd61e1ea4f3234937aa02b05c6bcf21e Author: Frederik Heber Date: Wed Feb 2 10:50:02 2011 +0100 Fix: MoleculeListClass::OutputConfigForListOfFragments with zero edge length of domain. - when molecule contains only two atoms and is aligned along an axis, one edge length of the domain will be calculated as being of zero length. This is fixed by adding a minimum of 1A. commit 3c58f8fb4e50513505ccd15a7e9c36b34f276129 Author: Frederik Heber Date: Wed Feb 2 10:43:01 2011 +0100 Changed molecule::ScanForPeriodicCorrection(). - it still used templated link stuff for the bonds which is deprecated and hence not usable. - now simply bool is returned, whether periodic fixing _would_ be necessary. - the number of of periodic fixings is counted and printed in MoleculeListClass::OutputConfigForListOfFragments(). commit 72d108d078550736c603bab52caa5d7586985f44 Author: Frederik Heber Date: Tue Feb 1 16:23:06 2011 +0100 Rewrote TremoloParser::readAtomDataLine() to use boost::tokenizer. - The problem was that while the previous construct worked fine, it made it very hard to know what is wrong about a file because it did not operate on single tokens but on lines. commit 266875d4d7ac759da8b913a7815cb5e3e6ced275 Author: Frederik Heber Date: Tue Feb 1 12:09:17 2011 +0100 FIX: ParserError did not adhere to naming convention. - excepetions are suffixed with ...Exception. - also, ParseError does not suggest that it is a _formula_ parser error. - renamed to FormulaStringParseException. commit 15f6e9c4484a9b8097f8c48695fb81dfd93e4911 Author: Frederik Heber Date: Mon Jan 17 19:58:49 2011 +0100 Extended Fragmentations tests by check for number of fragments per order. - Numbers are taken directly from one year old calculations (and still match). commit 03871391ca6c9494c227476e9ffca5d4ad581339 Author: Frederik Heber Date: Mon Jan 17 17:05:15 2011 +0100 Added Fragmentations test in the spirit of the Tesselations test. - configuration were taken over from Tesselations. - defs.in has been adapted to a new function called Fragmentation_run - the test files call this function along with order and distance argument. - so far we just check that exitcode of molecuilder is 0. - all tests are working. commit 00b59d53958fb689993d2537537ba47012ef9eaa Author: Frederik Heber Date: Mon Jan 17 15:05:30 2011 +0100 FIX: molecule::FragmentMolecule() did not remove copied atoms and molecules. - Subgraph copies molecules, are now removed in MoleculeLeafClass dstor. - BondFragments's molecules, i.e. the created fragments, are not removed, hence the output file got a lot bigger ... commit 1d5afa54793ab68a5248839eebb3f4a806cc460c Author: Frederik Heber Date: Mon Jan 17 12:21:17 2011 +0100 BUGFIX: CheckAdjacencyFileAgainstMolecule() hiccup'ed on parsed files. - we checked for iostream::eof() which seemed not to work in all cases. Now we use while (line << tmp) directly and this works. - maximum number of bonds is now (at least) a define MAXBONDS. - ASSERT that we parse not more than MAXBONDS bonds. commit 17f3cdb7d5c7b935f4e518c4cdbe4503d48542b9 Author: Frederik Heber Date: Mon Jan 17 11:41:29 2011 +0100 Placed regression tests Fragmentation into own folder and one file each test case. commit febef3def9964a3995a74f80fea41b3d7b1f3cf5 Author: Frederik Heber Date: Fri Feb 4 18:16:05 2011 +0100 Removed verbosity of LoadElectronegativityDb. commit 4e855e867fa84e16d3c418b917eb36c8f1b45f90 Author: Frederik Heber Date: Fri Feb 4 19:54:12 2011 +0100 BondGraph::LoadBondLengthTable() now accepts istream instead of const char *. - This has been quite a lot of work because the matrix parsing is involved. - Hence, the fix is not really clean, this should get fixed as soon as we deal with the BondGraph implementation. - This fixes ticket #130. commit fd378853756ce2d629fc774e7c82d6739ae1be78 Author: Frederik Heber Date: Mon Jan 17 18:35:34 2011 +0100 Corrected CLEANUP use for Tesselations tests. - CLEANUP wrongly contained cd .. - trap is now evaluating CLEANUP variable on call not before. - This allows for clearing of CLEANUP in case of execution failure of the test. commit 89c953d85256f5bffcf12e7a0539f4afd28d633b Author: Frederik Heber Date: Mon Jan 17 15:45:13 2011 +0100 Removed config.guess and config.sub that are created by autconf. commit 5817efa0e8e615d6c84a733fd6f933a293aed46d Author: Frederik Heber Date: Sun Jan 16 20:00:39 2011 +0100 FIX: regression test Selections/Atoms/6 did not use /bin/cp. - if cp is an alias to 'cp -i' this causes trouble. commit a5028f9fe5de8314faeb80f8192d465807b8d3f0 Author: Frederik Heber Date: Fri Jan 7 16:38:52 2011 +0100 RandomNumberGeneratorFactory is now used instead of rand() throughout the code. - FillVoidWithMolecule(): this is not sensible for all distributions. Maybe so, for now this is just to test the dipole angular correlation implementation. Here, one should rather hard-code one. commit 63839fc79e8c290c3140390c805105bc4563c078 Author: Frederik Heber Date: Sat Jan 15 15:38:57 2011 +0100 RandomNumberGeneratorFactory does not clone anymore. - cloning of the generator was nonsense, as (because of same seed), we always start at same random number sequence. I.e. if we often obtain new random number generator we hardly get random numbers. - RandomNumberGeneratorFactory::makeRandomNumberGenerator() returns now reference to avoid accidental free'ing of the instance (that is still contained in the prototype table of the factory). - unit test of RandomNumberGenerator now checks for non-copy received. - RandomNumberGenerator()::get...Name() are now const members. - in many cases where pointer *rng was received and ref &random obtained from it, we now receive ref directly (and then don't accidentally forget to delete the clone anymore. Which is good in any case!). commit 5347cd4e514abf1b1aa9c7c234f7ba2c0622c8fd Author: Frederik Heber Date: Sat Jan 15 15:37:27 2011 +0100 Added mt19937 to list of possible engines. commit ecb6c5d6da5d51fee9c1327a6586913c65696e7d Author: Frederik Heber Date: Fri Jan 7 16:36:14 2011 +0100 min(), max() now implemented for all remaining random number distributions. - min and max are essential to re-adjust the range. Have been hard-coded from the properties of the distribution if not min(), max() not available. commit 9964ff08ae3e4aef63704e318e818e8e0f0430af Author: Frederik Heber Date: Fri Jan 7 16:35:13 2011 +0100 RandomNumberGeneratorFactory now uses Engine and DistributionFactory defaults directly. - added unit test were these factory defaults are set and a composed Generator is made and its contained types tested. commit 0275ad195a931bec57fdd26321f927b08c267597 Author: Frederik Heber Date: Fri Jan 7 01:15:49 2011 +0100 Final step in Random numbers is done ... - requires CodePatterns 1.0.7. - RandomNumberDistributionFactory and RandomNumberEngineFactory are now ManipulablePrototypeFactory's (and ...Engine and ..Distribution_Encapsulation are ManipulableClone's). - new sets of manipulation parameters RandomNumberDistribution_Parameters and RandomNumberEngine_Parameters. - added Query for RandomNumberDistribution_Parameters because GUI will need to change for specific parameters depending on selected distribution. ... actually, this happened accidentally and was an enormous amount of work ... - added string parser for distribution parameters from CommandLine, TextUI and QtUI with boost::tokenizer. - ValueStorage uses this parser for query and setting of CurrentValue. - unit tests are working and are doing their job very well (found a bug with clone not using the distriubtion to clone's parameters). - added PrototypeManipulationTest to engine and distribution factory unit test. - regression tests with Undo/Redo are done. - what's missing is an extension of the test of RandomNumberGeneratorFactory. commit 1ee3b8d85bc3b82115508a188e0b73f52d7404db Author: Frederik Heber Date: Thu Jan 6 13:30:08 2011 +0100 Made RandomNumbers sources into its own library libMolecuilderRandomNumbers. - this makes the unit test stuff fast, they use the new lib and not recompiled modules. - lib is included in Actions, Descriptors, Parser and general unittests, also as a dependency for LinearAlgebra lib. commit 6ff0c86cbaac5717bf62b0ad078300179e43e3e1 Author: Frederik Heber Date: Thu Jan 6 13:28:31 2011 +0100 SetRandomNumbersEngineAction now only requires RandomNumberEngineFactory and uses seed. - requires CodePatterns 1.0.7. - prototype is manipulated for new seed via ugly const_cast. - FIX: forgot to undefine engine_seq[_a] in RandomNumberEngineFactory.undef. commit 081e5d776b34e30d39d3d2bd6b9706066bba6950 Author: Frederik Heber Date: Wed Jan 5 18:30:01 2011 +0100 Implemented all possible parameter functions for engine and distribution in interface. - template member function has an ASSERT. - and then for each actually present parameter function of a specific engine or distribution there is a function specialization that passes on the request. - minimal use is made in the engine and distribution factory unit tests and everything is fine so far. commit 15911c97898d09d69931fb955bf4db5cea2b7dc1 Author: Frederik Heber Date: Wed Jan 5 17:09:12 2011 +0100 Made some cstor of RandomNumber... protected. - RandomNumberGenerator now contains refs to engine and distribution instead of encapsulation as it can be made friend of these classes to allow acccess to dstor. commit 9b3476e89c8176ecacfb1a4825157fcc620108b1 Author: Frederik Heber Date: Wed Jan 5 15:18:11 2011 +0100 RandomNumberDistribution and RandomNumberEngine inherit Clone instead of Creator, ...Factory are Prototype Factory. - requires CodePatterns 1.0.5. - RandomNumberDistribution inherits Clone<> and implements a clone() function. - RandomNumberEngine inherits Clone<> and implements a clone() function. - that is RandomNumberGenerator clones can from now on be directly manipulated via prototypes in RandomNumberEngineFactory and RandomNumberDistributionFactory. - Removed PrototypeManipulationTest() from Engine and DistributionFactoryUnitTest. commit 076a7747f6149944af692526338b96c2659d9e53 Author: Frederik Heber Date: Wed Jan 5 12:13:54 2011 +0100 RandomNumberGeneratorFactory nows uses Clone instead of Creator pattern. - requires CodePatterns 1.0.4. - RandomNumberGenerator_Encapsulation implements clone() with calls the constructor ... - ... who in turn (sadly) needs some evil dynamic_cast to get the complex type from the simple interface, because we need access to true engine and distribution. The instances themselves are obtained properly from the respective factories. However, the constructor is protected now. - FIX: friend classes can actually be forward declared. commit 1d5a8713812642e80f03e59bcd85a3ffedbe20b5 Author: Frederik Heber Date: Tue Jan 4 13:09:44 2011 +0100 Factored out Factory pattern (no pun intended). - the Factory pattern half-way residing already in RandomNumberDistribution- and -EngineFactory has been extracted, outsourced into CodePatterns project and is used here. - same for Creator pattern. - the prototype problem has not yet been solved. - FIX: forgot to clean up RandomNumberDistribution- and -EngineFactory instances in cleanUp(). - we now require 1.0.2 of CodePatterns. commit c9bc2b7e55bf61ed1abfd0a5314ce53adea45fa9 Author: Frederik Heber Date: Mon Jan 3 15:01:22 2011 +0100 Bigger rewrite of RandomNumbers ... due to cloning of prototypes. - in order to copy the prototypes and not use the original instance, we have implemented a new pattern called "Creator" that wraps a templated class in a creation interface class such that this abstract class can instaniate the particular types (see here http://stackoverflow.com/questions/3506026/c-clone-abstract-base-class-without-meddling-with-derived). This is also wrapped up in ..._Creator.hpp files. - meanwhile we also tried to have factories for Engine and Distribution but this failed due to boost::variate_operator<> having to know the particular types of engine and distribution. One could go forth with some cast's but this is very unclean and not what we want. ... Downside is that we can't set global options for engines or distributions as of now. - For the moment Engine- and DistributionFactory both have a prototype table, i.e. the same wrapped ones as above, but they are not used for the GeneratorFactory. - For all we have written unit tests: - RandomNumberDistributionFactory - RandomNumberEngineFactory - RandomNumberGeneratorFactory - RandomNumberGenerator The last one especially checks that two given generators are independent, i.e. first call produce the same number from the pseudo-random number sequence. commit 3f9eba726fa6ba97ad9f47ad397aa83f8f1fc923 Author: Frederik Heber Date: Sat Jan 1 23:27:54 2011 +0100 New classes for random number generation. - we use boost::random as a basis. It implements a lot of pseudo-random engines and various distributions. However, everything is templated and there are no base classes to store prototypes of the instances in a map. We need these such that we are able to offer the user at run-time every choice possible. - Hence, we need to encapsulate all engines, distributions and (engine, distribution) tuples: RandomNumber..._Encapsulation classes. - each with an abstract base class as the interface: RandomNumber... classes. - RandomNumberGeneratorFactory is then a singleton that contains all the Maps and tables: - from string (user input is string) to enum (storing enum is more efficient that a lengthy string) - from enum to instance (of the abstract class). - RandomNumberGeneratorFactory is a singleton to allow for global control of what kind of numbers are generated, hence there are also two new Actions: - SetRandomNumbersDistributionAction - SetRandomNumbersEngineAction to specify which (engine,distribution) tuple to use. There are two new regression tests for these Actions. - The user in the end only uses two classes: RandomNumberGeneratorFactory and RandomNumberGenerator. The first only for obtaining a specific variant of the latter and the latter to generate the numbers (operator() is passed on to boost::variate_generator::operator()). - There is a unit test on the RandomNumberGeneratorFactory that checks some of the table entries and whether one of the RandomNumberGenerator is working (uniform_smallint so far). Details: - As there are ~25 engines and ~15 distributions this makes an enormous amount of possible combinations. To automatically construct these, we use some stuff from boost::preprocessor in order to generate enums, tables and maps automatically just from a sequence of the typenames. - we have be-friended the unit test a lot to allow for easier testing, e.g. we need access to internal ..._type to test whether their type is correct. - cleanUp() purges the instance of RandomNumberGeneratorFactory. - in RandomNumber..._Encapsulation::name() functions are only used for the unit tests. - this all resides in its own subfolder RandomNumbers. So far, it is completely independent of everything else. commit 1f91f4d142b3890c0ea0c60d27ff628498b897f0 Author: Frederik Heber Date: Mon Jan 10 23:31:40 2011 +0100 factored functionality in PrincipalAxisSystemAction() and RotateToPrincipalAxisSystemAction() into class molecule: - new functions in molecule - getInertiaTensor() - RotateToPrincipalAxisSystem() - PrepareClustersinWater() then does not need to call an Action anymore. commit 4782599cc2cedbb40da7b38c15b2bf5c0d183589 Author: Frederik Heber Date: Mon Jan 3 09:58:54 2011 +0100 FIX: new regression test for PrincipalAxisSystemAction is prone to numerical instability. - if we test for 0, 1e-17 is not a match ... - renamed former subfolder 5 to PrincipalAxisSystem according to new naming scheme. - Action also now solves for the eigen system of the 3x3 inertia tensor and prints eigenvalues. commit b25fa374bf59ffcdade5ca861bcb1d97d99159cc Author: Frederik Heber Date: Thu Dec 30 14:38:46 2010 +0100 Added Angular Dipole Correlation - Discrete angles test suite part. - Analysis/7: Due to different centers, one plane of water molecules looses a hydrogen, being rendered outside domain. Then, dipole is not practical anymore. Instead we use the option distance-to-boundary with "1." but have to give a new waterbox(-mirrored) and new histograms (as there are now only 216 molecules filled into domain). commit 92e5cbdb87cf8cd20127f2dff627b843dfad5ae2 Author: Frederik Heber Date: Thu Dec 30 12:10:50 2010 +0100 Refactored Output..Correlation...() code into a single templated one. - template function OutputCorrelationMap() that accepts two function pointers for header and value to print the map's specifics. - all other function have been refactored into these two output functions per CorrelationMap type. TESTFIXES: - Analysis/1-4,6: as the output files changed due to different header and extended contents, we had to replace them. However, each single one was checked by eye whether it differed in the old places (and they did not). - AnalysisCorrelationToPointUnitTest: OutputCorrelation -> OutputCorrelationMap - AnalysisCorrelationToSurfaceUnitTest: OutputCorrelation -> OutputCorrelationMap commit cd7a874697981628f16debf304ae5c1ff4d0f0ce Author: Frederik Heber Date: Thu Dec 30 10:41:56 2010 +0100 Refactored Analysis regression tests, added angular dipole correlation - empty test. - structure is now same as for Selection tests. - Principal Axis System is now implemented (commented-out before). - new Angular Dipole Correlation - empty test group created. - templates for discrete angles and random distribution that are skipped for the moment. TESTFIXES: - Analysis/6-7: lengths was dropped (default value of "0." is sufficient). commit caa30bb728eba9087798caddea7ae014d9ba4f4f Author: Frederik Heber Date: Wed Dec 29 12:02:55 2010 +0100 BUGFIX: Correlation functions return NULL outputmap when something is wrong. - we return allocated empty map instead. commit be945c354a323c7dfc428278d0959f40f791b566 Author: Frederik Heber Date: Fri Dec 17 19:52:44 2010 +0100 New DipoleAngularCorrelationAction that calculates angular correlation between dipoles. commit 67c92bc74e63aa32a5591cb97787b1ac983f9ee0 Author: Frederik Heber Date: Fri Dec 17 19:51:30 2010 +0100 Added Electronegativity database and member value to class element. - periodentafel contains new loading functions. - also all periodentafel::load...() now accept reference of istream, not pointer. This causes changes in PeriodentafelUnitTest. commit ea430a82140f37b1e0e63e084a2bff60d5685366 Author: Frederik Heber Date: Wed Dec 15 18:23:34 2010 +0100 Initial versions of DipoleAngularCorrelation(). - no implementation yet, just function signatures. commit 9df680e1ca4592968b96c9d82a4e85fee43ab4c5 Author: Frederik Heber Date: Sat Jan 15 16:04:18 2011 +0100 FIX: FillVoidWithMolecule() now centers filler molecule at its center of gravity. - this is the only sensible option if we later rotate the molecule. - atom::clone() reduced a lot, as copy constructors contains it all. - FillVoidWithMolecule() - filler is now selected to reside entirely within the domain. Otherwise, we seg'fault on save on exit, as one of the father atoms for all copied atoms is missing and hence, we cannot look at its additional...Data for various parsers. - new function molecule::removeAtomsInMolecule() which destroys all the molecule's atoms. TESTFIXES: - Filling/3: filled water box has changed due to different center of water molecules. commit d6f8869464bd2208482a0f62cc438db4939fc16d Author: Frederik Heber Date: Mon Jan 10 11:55:48 2011 +0100 changed stupid --lengths parameter of fill...-with-molecule into three distinct ones. - in this Vector length three distinct things had been mixed, with --distance it made sense, with lengths this's been just nonsense. - new parameters are --distance-to-molecule --random-atom-displacement and --random-molecule-displacement and all default to zero. - moved files into regression/Filling and three files, one for each test case according to new scheme. TESTFIXES: - Filling/1-3: lengths mostly replaced by --distance-to-molecule commit 66fd499538327fa9d63d45ec481787c8650b9509 Author: Frederik Heber Date: Thu Dec 30 21:52:17 2010 +0100 Rewrite of FillVoidWithMoleculeAction. FillVoidWithMoleculeAction: - new parameter MinDistance and default value of 0. - BUGFIX: filler is already created when parsing file, removed useless creation of it initially (also caused lots of confusion due to an "extra" molecule). - Undo implemented, regression test inserted. - Redo is somewhat hard to implement, as one would use performCall() if it only it would not retrieve its values from ValueStorage ... FillVoidWithMolecule(): - filler is now the zeroth not the last molecule, marked by firstInsertion and firstInserter. Filler is removed if no molecules are filled. - outsourced stuff into smaller functions - RandomizeMoleculePositions() - RemoveAtomsOutsideDomain() - isSpaceAroundPointVoid() - removed FillIt to through every atom despite only CurrentPosition, indepedent of atom position, is checked. TESTFIXES: - Analysis/3: test.xyz changed because boundary is now 1.5 instead of 2.1 as 2.1 is not enough of molecules get filled in (and the filler already is). - Analysis/3: tensid.data was actually lacking water at (0,0,0) which is after the rewrite present. commit 0b15bbf617ce267e166ff4e7e1454ca420c1488f Author: Frederik Heber Date: Fri Dec 17 19:50:12 2010 +0100 BUGFIX: fill-molecule was rotating randomly per atom, not per molecule. commit c00d359f173d2e16a9424a03c781f723da85fa93 Author: Frederik Heber Date: Wed Dec 29 17:30:04 2010 +0100 RotateAroundSelfByAngle now acts on all selected molecules. commit cb9de4fed6a381fa6220088cb1a1b919167e8e82 Author: Frederik Heber Date: Wed Dec 29 15:40:08 2010 +0100 Parameter for rotate-around-self axis is now called 'axis' not 'position' anymore. - this is only needed due to multiple tokens not yet possible. TESTFIX: Molecules/Rotate around self parameter adapted. commit aa4b2d50a6822ca41e873badba032107ce6d6d6d Author: Frederik Heber Date: Wed Dec 29 17:53:52 2010 +0100 All (Un)SelectionActions now state how many atoms or molecules (remain) selected. commit d1115de89a5962b3b03f159e145f3860d6a3b410 Author: Frederik Heber Date: Thu Dec 30 20:43:58 2010 +0100 FIX: paramdefaults values have to be in "", now enforced by constructing std::string from it. - before we could say (0) as a paramdefault which did not give any clear indication why compilation failed. Now, it states that std::string cstor for this type is missing, which should point to writing ("0") instead. - Action.hpp: NODEFAULT changed to "" instead of std::string(""). commit e5bf2b22c0042a67710fb901a98aa2af11f93f72 Author: Frederik Heber Date: Mon Jan 10 23:34:20 2011 +0100 removed CPPUNIT_LIBS/FLAGS from most Makefile.am and LIBS/libs -> LIBADD. - CPPUNIT_LIBS/FLAGS is only needed for unit tests. - LIBS/libs should actually be LIBDADD, see also ticket #133. commit b2ae3bbc113d5260710b637dd098d36ee28dc655 Author: Frederik Heber Date: Tue Jan 4 13:14:59 2011 +0100 Removed smaller warning, mostly due to NDEBUG. - ASSERTs are not compiled in with NDEBUG but some stuff is assigned before and then checked within the ASSERT. If NDEBUG, the compiler will issue a warning because of unused variable. These have been excluded by a #ifndef NDEBUG,#endif block. commit dd88cb86f41b3bd7928c6029b08d07f211ecb31f Author: Frederik Heber Date: Thu Dec 23 19:14:41 2010 +0100 Set current version to 1.0.8. commit 6d2207705fa65aba62ae39144897529bc80eb3a3 Author: Frederik Heber Date: Thu Dec 23 17:45:39 2010 +0100 FIX: Forgot Shapes/unittests and made Shapes into own library. - Shapes only depend on LinearAlgebra and Exceptions, hence own lib module. commit acbe1b77b823d2bb1821c128fc01df591be27828 Author: Frederik Heber Date: Thu Dec 23 17:35:16 2010 +0100 All libraries don't have version in name anymore. - we used gained knowledge from CodePatterns library for .pc file and and the generated libs to finalize their use (for SubspaceFactorizer soon the factored out into independent project). - .pc now contains all libs and named correctly. Makefile.am's - include_HEADERs corrected - pkgconfig_.. thrown out except in src/, it's always the same file - at a later point we might have specialized .pc files for specific libraries such as Shapes,LinearAlgebra and Exceptions, ... - no more version attached, only via -version-info, as .pc file checks for version anyway. commit dc031cb33b9d55462239994b557d00d9554e07f7 Author: Frederik Heber Date: Wed Dec 22 18:16:07 2010 +0100 Added enable-debug and enable-cache switches to configure. - These set NDEBUG or MEMDEBUG. - The user does not need to have to know about this stuff, configure should tell him his options in a easy to understand manner. - also, we use CodePatterns-debug library if debug is specified and we need v1.0.1 from CodePatterns. - updated ax_codepatterns.m4. commit 56f73b5512dfb946d0cfe382fc8564d60e182c52 Author: Frederik Heber Date: Wed Dec 22 18:10:02 2010 +0100 Added config.h also to all header files, code check test ascertain this in the future. - as we want to use config.h to pass stuff such as MEMDEBUG, NDEBUG, LOG_OBSERVER, we have to make sure that it is present in each and every file. - split up CodeChecks/testsuite.at: each test has its own .at file. commit ad011c5ac0c9bfcf699f41ee11dd4a8aa0abb89a Author: Frederik Heber Date: Wed Dec 22 11:33:36 2010 +0100 CodePatterns places all includes now in subfolder CodePatterns/. - change all includes accordingly. - this was necessary as Helpers and Patterns are not very distinctive names for include folders. Already now, we had a conflict between Helpers from CodePatterns and Helpers from this project. - changed compilation test in ax_codepatterns.m4 when changing CodePatterns includes. commit a0064eed42643b1cce8b62a957d12e2bdfc5e696 Author: Frederik Heber Date: Wed Dec 22 10:18:48 2010 +0100 Moved stuff in src/Helpers and src/Patterns out to stand-alone project CodePatterns. Makefile.am's: - CodePatterns added to AM_LDFLAGS and AM_CFLAGS - libMoleCuilderHelpers removed Helpers/... - defs.hpp include prefixed with Helpers/ - helpers.?pp removed lots of old, unused functions: bound, ask_value, ... - fast_functions.hpp has lots of functions removed as well. - all other files and unit tests moved to project CodePatterns. Patterns/... - all files mnd unit tests oved to project CodePatterns. - added ax_codepatterns.m4 containing AM_PATH_CODEPATTERNS to configure.ac commit f28a26ae355bb241ae04316dbd135e284fbb92a6 Author: Frederik Heber Date: Mon Dec 20 22:18:34 2010 +0100 Added ChangeLog file and config dir creation to bootstrap. commit 78bb14109cfdffd92df5a209d6c6f435f90b1369 Author: Frederik Heber Date: Fri Dec 17 16:57:59 2010 +0100 BUGFIX: SetOutputFormatsAction seemed to add last format twice. Thanks Daniel! - this was a bug in ValueStorage: while-loop checked for stream.fail(), but the stream might also fail within and nonetheless we pushed the (then unaltered from last iteration) temp value. Hence, doubly occuring last item. - to prevent this, we test within for stream.fail() and for all others we placed ASSERT's everywhere (as internally strings are used for conversion and for a vector, we have to parse (at least) three strings). - if std::vector<>'s are parsed, we ASSERT only that at least one value was parsed. - FormatParserStorage now just gives a warning, when an already presen Parser is added again, but gives a not that input type is not needed to be specified as output type as well. thanks Daniel for pointing this out! commit ff3c4002a716034c90ecc45a2447e144ee900ffe Author: Frederik Heber Date: Fri Dec 17 16:26:30 2010 +0100 BUGFIX: TremoloParser would store "noKey" if other format given as input. - If not originating from a tremolo type file, i.e. when TremoloParser has to fall back to its default value, it wrongly output also the noKey. - also we placed setter and getter for noKey, getter gives "noKey" string. commit e6f9c5924a09731d92bcf9977f544c3c06f0099d Author: Frederik Heber Date: Fri Dec 17 15:46:13 2010 +0100 Removed all -e ${abs_top_srcdir} from regression tests. - Now only the test on external element database uses still "-e" switch. - Note that this was utter nonsense before anyway. Molecuilder writes the database in the end, i.e. make check would change elements.db in the source folder ... Evil! - This closes ticket #78. commit 5d6f38416b4c5e08382366362df9df4bac7f185a Merge: d0a7193 dd97a92 Author: Frederik Heber Date: Fri Dec 17 15:20:26 2010 +0100 Merge branch 'Fix_TremoloAtomInfoContainer_MemDebug' into stable commit dd97a92224a10b645572d2e62e316c7cf76175e6 Author: Frederik Heber Date: Fri Dec 17 15:20:07 2010 +0100 Added missing MemDebug.hpp to TremoloAtomInfoContainer.cpp. commit d0a719337605ff092ec30a9628eacac47018187c Author: Frederik Heber Date: Fri Dec 17 15:17:44 2010 +0100 Added new testsuite called CodeChecks. - this testsuite is meant to capture coding pardigms and ascertain that they are adhered to. - the first test is on whether MemDebug.hpp is included in every source file which is quite necessary since we have set all unknown mem source to be ignored in counting and admonishing. commit f844ef1d2617f49c942d373969b847f7fc5ae831 Author: Frederik Heber Date: Thu Dec 16 22:40:03 2010 +0100 Renamed all remaining unit tests in src/unittests to Capitalized naming scheme. - some includes had to be changed. - some other files too due to befriended member functions of unit tests. commit dfafe75c0a321601e7c5213a34a8e595a074c4f4 Author: Frederik Heber Date: Thu Dec 16 22:07:59 2010 +0100 Moved VectorContentUnittest and vectorunittest to LinearAlgebra/unittests/VectorContentUnitTest and ../VectorUnitTest. commit 0b3cbdf61fac3c20da86e10708e1eb6f38434f9e Author: Frederik Heber Date: Thu Dec 16 22:02:50 2010 +0100 Moved ShapeUnittest to Shapes/unittests/ShapeUnitTest. commit 57d976e0915dfd9310443b244dfde9c7d398ab8e Author: Frederik Heber Date: Thu Dec 16 21:56:56 2010 +0100 Moved RegistryUnitTest to Patterns/unittests/RegistryUnitTest. - renamed unit test exe Registry -> RegistryUnitTest. commit 5bc8229c9ad8aacd95f80f0270ccd72aad8fb4a8 Author: Frederik Heber Date: Thu Dec 16 21:52:09 2010 +0100 Moved PlaneUnittest to LinearAlgebra/unittests/PlaneUnitTest. commit f890244320184388b550201562b2a865b1b496ee Author: Frederik Heber Date: Thu Dec 16 21:47:33 2010 +0100 Moved LineUnittest to LinearAlgebra/unittests/LineUnitTest. commit 41396af72cb96bbfe713a3fdf03c9101ef077da5 Author: Frederik Heber Date: Thu Dec 16 15:59:07 2010 +0100 Moved Parser...UnitTest to Parser/unittests/Parser...UnitTest. commit a2c4f3a25768bdc125e4bb1a2d1a55d910d0b53b Author: Frederik Heber Date: Thu Dec 16 15:54:02 2010 +0100 Moved ObserverTest to Patterns/unittests/ObserverUnitTest. commit 6c9adcb840c14f7f035c42223e0c8e915c72fde5 Author: Frederik Heber Date: Thu Dec 16 15:47:29 2010 +0100 Moved MoleculeDescriptorTest to Descriptors/unittests/MoleculeDescriptorUnitTest. commit 0e20316989ca2bc429f9b3d052d7b3e9ba3d26cc Author: Frederik Heber Date: Thu Dec 16 15:44:27 2010 +0100 Moved MenuDescriptionUnitTest to UIElements/Menu/unittests. commit efd61bd3e7212dbd914dab44397fc2a2e40bff21 Author: Frederik Heber Date: Thu Dec 16 15:32:21 2010 +0100 Moved manipulateAtomsTest to Actions/unittests/ManipulateAtomsUnitTest. commit 4076fcc9b9d836715dfe1bba1c9247bfdd385a93 Author: Frederik Heber Date: Thu Dec 16 15:28:25 2010 +0100 Moved logunittest to Helpers/unittests/LogUnitTest. commit 78b59342efdef84002909010c97948f27e3de0dd Author: Frederik Heber Date: Thu Dec 16 15:19:18 2010 +0100 Moved linearsystemofequations to LinearAlgebra/unittests/LinearSystemOfEquationsUnitTest. - also renamed linearsystemofequations.?pp to LinearSystemOfEquations.?pp. commit fff54fc0db0a4acc85e41914d8ef5c4e74bd0e7f Author: Frederik Heber Date: Wed Dec 15 20:12:13 2010 +0100 Moved all Matrix...Unittest to LinearAlgebra/unittests/Matrix...UnitTest. commit 3c8e8bb4ac545196f3097a1517f779726212885b Author: Frederik Heber Date: Thu Dec 16 21:29:04 2010 +0100 Moved atomsCalculationTest to Actions/unittests/AtomsCalculationUnitTest. commit e7da1f59b247209d90468802fd9412179ff04717 Author: Frederik Heber Date: Thu Dec 16 21:23:58 2010 +0100 Moved CacheableTest to Patterns/unittests/CacheableUnitTest. commit d766b57dc12ce7778425d65155b7159612ed7211 Author: Frederik Heber Date: Wed Dec 15 19:40:21 2010 +0100 Moved AtomDescriptorTest to Descriptors/unittests/AtomDescriptorUnitTest. commit 456e78e35fb62976d5ccc14000867cdfdf3da8bc Author: Frederik Heber Date: Wed Dec 15 19:32:19 2010 +0100 Removed ActOnAllUnitTest. - Till had replaced all ActOnAll by for_each() with boost::bind. Hence, ActOnAll is not used anymore. commit f7c0c4875e5eed9b9b820e4cd989c0203179be0b Author: Frederik Heber Date: Wed Dec 15 19:18:36 2010 +0100 Moved ActionSequenceTest to Actions/unittests, renamed to ActionSequenceUnitTest. commit deddf60dcef024b8000d9a49d0357ae4601a46de Author: Frederik Heber Date: Thu Dec 16 23:13:41 2010 +0100 New unit test for ActionRegistry. - checks whether a short form has been used by more than once Action. - unit test is placed in Actions/unittests but called from unittests/Makefile.am via SUBDIRS to ensure that all libs are compiled. commit c0bccbecd01c28def7f751995f67ff1a54f4c1c4 Author: Frederik Heber Date: Thu Dec 16 23:12:19 2010 +0100 Moved SingletonTest to Patterns/unittests/SingletonUnitTest. commit 85949a638ffde393b44b0671e40b3ccedb46ce2f Author: Frederik Heber Date: Wed Dec 15 18:53:45 2010 +0100 Split off unittests Makefile.am's in configure.ac into own AC_CONFIG_FILES. commit 2a0a9e3fc16c166da2f43bcf25a079b018b47785 Author: Frederik Heber Date: Wed Dec 15 18:17:48 2010 +0100 FIX: CommandLineParser::getShortFormToActionMap() const member function now. commit ad727091ea334c1a264e49463c1dfd9494856a64 Author: Frederik Heber Date: Wed Dec 15 17:26:52 2010 +0100 Reduced initial verbosity of code. FIX: - initUI() - no more admonishing of missing bond length table. The following messages have been placed in comments: - Registering of Action/Options. - Looking for KnownTypes. - Stating MenuNames, Separators and submenu creations. - No more listing of parsed elements. - No more listing of thermostats. The following messages have been added: - prepended scanning arguments in CommandLineParser::scan...(). - prepended running arguments in CommandLineWindow::display(). - additional new line after ProgamHeader(). - correct CommandLine UI setting to occur before arguments are parsed. - changed verbosity levels of CommandLineParser::scanforSequenceOfArguments(), also all use DoLog(), i.e. global verbosity makes them be listed again. NOTE: - MemDebug: as delete NULL is safe, we do not warn when this occurs. Also, in Qt this happens a lot. TESTFIX: - setting global verbosity to 1, messed with Standard_Options/1. There we set verbosity to 9 to avoid this in the future. commit f4d06356f58f97d60e79eab5f19874cf6cd3d55c Author: Frederik Heber Date: Wed Dec 15 16:54:40 2010 +0100 MEMFIX: MemDebug ignores all unknown sources. Removed all dependencies around main(), moved to builder_init.?pp. - this has been an attempt to fix the warning of a memory leak that actually results into the libboost_filesystem.so over which we have no control. As of now, i I do not quite look through the whole affair. That is, I have a now idea why Till's new memory allocator is used during the initialization of some external library already, but apparently it must have to do with lookup tables present in the exectuable already. Hence, we can not do much about. - Nonetheless, we split up main() into some initializating functions which have been outsourced to builder_init.cpp. - The only fix then is that we ignore all values of unknown source in MemDebug. - Note: We only do accouting of stuff allocated on the heap (e.g. int *test = new int;) and not on stack (int test;)! However, stack space is limited anyway. commit c77ac834b1961f9274456206890fd358c78dcd5b Author: Frederik Heber Date: Sat Dec 11 23:02:50 2010 +0100 Added regression test for each SelectionAction on molecules. - new subfolder Selection/Molecules. - contains a testsuite-selection-....at per selection present. - extensive and very well checked tests. commit ff237cac90abf3bb5724922b22e18dfefccb8028 Author: Frederik Heber Date: Sat Dec 11 23:01:10 2010 +0100 FIX: Simplified SelectionNotMoleculeByFormulaAction::performCall() with descriptor. commit 1a0987486025bfa5a57b606108e288ec7f8fe19f Author: Frederik Heber Date: Sat Dec 11 22:10:26 2010 +0100 BUGFIX: SelectionMoleculeByIdAction::performRedo() uses wrong (_)state. - thanks new regression tests for noting this one, causes segfault. commit c42e60ed725925e7ac0c237a354103f0a7089314 Author: Frederik Heber Date: Sat Dec 11 22:05:11 2010 +0100 Two new descriptors: AtomOfMoleculeSelection, MoleculeOfAtomSelection. Rewrote associated SelectionActions. - AtomOfMoleculeSelectionDescriptor: represents all atoms of currently selected molecules - MoleculeOfAtomSelectionDescriptor: represents all molecules of currently selected atoms - rewrote Selection(Not)AllAtomsOfMoleculeAction: simply uses selectAllAtoms() and descriptor, no parameter anymore - rewrote Selection(Not)MoleculeOfAtomAction: simply uses selectedAllMolecules() and descriptor, no parameter anymore - renamed (un)select-molecule-of-atom to (un)select-atoms-molecules. That is, the SelectionActions are meant to use one selection and turn the other accordingly. It is a sort of exchange between the two. I can convert a selection of atoms to molecules and vica versa, but this "mapping" is NOT injective but always surjective. Testchange: - Selection/Atoms/testsuite-selection-atoms-of-molecule.at: Due to the absent parameter now, we first select the molecule by id and then ... commit fc5c3aecf61bf757b27c7c4f9060569db2b116c7 Author: Frederik Heber Date: Sat Dec 11 17:30:38 2010 +0100 Molecule's SaveAction saves selected molecules, World's OutputAction saves World. - we make use of the extended FormatParserStorage::save...() functions. - OutputAction now has a single parameter, the file name. Before it was quite useless anyway as the World is stored on program exit anyway, overwriting anything that would have been stored by the Action in between. Testchanges: - SimpleConfiguration/2 are now called "--output" and not "-s" due to other Action being called. commit 73916fa693ce5fb3da8ee860f66532d555f21bca Author: Frederik Heber Date: Sat Dec 11 16:57:00 2010 +0100 Extended FormatParser::save() to use vector to save. - This is needed to make the save functions also work on selected atoms or molecules only. - Within ParserCommonUnitTest, ParserTremoloUnitTest we create the vector by calling World's getAllAtoms() (which would have been done before in the specialized save() functions). - new functions in FormatParserStorage: - saveSelectedAtoms(). - saveSelectedMolecules(). - saveWorld(). - renamed ::get() and ::put() to ::load() and ::save() to have it more consistent with underlying FormatParser functions and also to avoid misinterpretation with all ::get...() functions. commit 512f85d322a6e9f33d30dd5c0407a7abb6513ce2 Author: Frederik Heber Date: Fri Dec 10 19:07:09 2010 +0100 Added regression test for each SelectionAction on atoms. - Moved testsuite-selection.at to subfolder Selection. - testsuite-selection.at just contains includes for each Action. - Therein subfolder Atoms contains: - testsuite-selection-....at: one for each Action. - all folders with pre and post files. - all tests include Undo/Redo and select/unselect - each regression file has been tested thoroughly, especially for cuboid and sphere selection. commit 17c1a8e8744f0689e0dfd763a4ba3027a68fe52a Author: Frederik Heber Date: Wed Dec 8 00:55:21 2010 +0100 Added regression test for SelectionAction to testsuite. - so far only for AllAtomsAction. commit 125002e81c98512135b35e1b6d522def2717dad7 Author: Frederik Heber Date: Tue Dec 7 23:23:03 2010 +0100 Splitted SelectionAction modules into two groups - atoms, molecules - and each into a subfolder. - had to adapt includes in all .cpp files as they contained some stupid relative path. - This is sensible as there are quite a large amount of SelectionActions and it is hard to discern the ones which select atoms and which select molecules. commit 92d756fffdac8a3b844d1d562292a4c99a853093 Author: Frederik Heber Date: Tue Dec 7 23:05:18 2010 +0100 Larger update of selections. - new selections: - NotMoleculeByOrderAction - MoleculeByNameAction - NotMoleculeByNameAction - exchanged all loops in present selections by BOOST_FOREACHs - used AtomsBySelection() and MoleculesBySelection() to more cleverly store stuff for undo state. - new MoleculeOrderDescriptor (outsource from SearchMoleculeByOrder). commit 0bbfa1f442f20bde96b5119e3b620b99bc8c62d9 Author: Frederik Heber Date: Wed Dec 8 02:10:03 2010 +0100 BUGFIX: Parsing a second .data file failed. - atomIdMap was not cleared in TremoloParser::load(). - neighbors of first parsing get processed again after second parsing, hence bonds are added twice. commit 93fd43e59ae1cd1a2ca84e03e23e808197ff8076 Author: Frederik Heber Date: Tue Dec 7 15:00:19 2010 +0100 new function PdbParser::getadditionalAtomData() that also adds new entries. - either we get the present one, or create from next father, topmost father or from defaultValues a new entry. commit 1d02fe3308df262c745ee1939a67abc233e2f804 Author: Frederik Heber Date: Tue Dec 7 14:18:46 2010 +0100 MEMFIX: PdbParser::readAtomDataLine() additionalAtomData entries leaked. - entries were created by *(new PdbAtomInfoContainer) instead of PdbAtomInfoContainer() which copies default values from temp instances. commit 16462f8c5b097f56fd1c2c03e31b5cd9daef6a0f Author: Frederik Heber Date: Tue Dec 7 13:54:42 2010 +0100 PdbParser is now complete with respect to additionalAtomData. - serial, name, resName, resSeq, element, and charge are updated if changed, otherwise we use values from PdbAtomInfoContainer. - PdbParser::saveLine() completely uses information from PdbAtomInfoContainer. Testchanges: - Simple_configuration/2/post/test.pdb updated as we are now closer to real PDB format also concerning alignment and the resName changed again. commit 031e2c6660707d072a402cb12517f617d42c8d3c Author: Frederik Heber Date: Tue Dec 7 14:09:39 2010 +0100 Splitted off classes TremoloKey and TremoloAtomInfoContainer into own modules. commit 24f1282e1df2c72138841c78643facb494f0b9ed Author: Frederik Heber Date: Tue Dec 7 14:16:13 2010 +0100 MEMFIX: TremoloParser::readAtomDataLine() additionalAtomData entries. - entries have been filled with *(new TremoloAtomInfoContainer) instead of TremoloAtomInfoContainer() which copies default values from temp instance. commit 4c12306495978f073faf37a21b00f168b04041bf Author: Frederik Heber Date: Mon Dec 6 21:47:33 2010 +0100 FIX: PdbParser::writeNeighbors() uses getAtomId not getSerial. - additionalAtomData is as of now not used for storing. Hence, we first fix this. Now, the set id in PdbParser::save is also used for the neighbor connectivity. commit a564be038aa43b68337fb7e9294c7feed0300ab0 Author: Frederik Heber Date: Mon Dec 6 20:15:03 2010 +0100 Removed ancient StackClass, replaced by std::deque. - all PopLast replaced by pop_front. - all PopFirst replaced by pop_front. - and we have two remove items in two steps, first get item, then pop. commit fd19ffcfb7e86ca4783fbcedf0584c4608df7c1c Merge: 001f8a9 ca03c73 Author: Frederik Heber Date: Sun Dec 5 01:21:11 2010 +0100 Merge branch 'SelectMoleculesByOrderAction' into stable commit 001f8a9151f2367cc32119fef0f83b2bfdaf9222 Merge: f03705f cabb467 Author: Frederik Heber Date: Sun Dec 5 01:21:03 2010 +0100 Merge branch 'ExtendLoadSaveXyztoAnyFormatParser' into stable commit ca03c737b18c4f2c7a74bb5afa10aef73a7369e8 Author: Frederik Heber Date: Sat Dec 4 23:22:31 2010 +0100 Added select-molecule-by-order Action. commit cabb4679cb9a88d3965bf3c046c49ed900a21865 Author: Frederik Heber Date: Sat Dec 4 22:23:07 2010 +0100 Extended LoadXyz and SaveXyz to any format. - renamed ParserAction/LoadXyz -> MoleculeAction/Load (same with Save). - also changed .def for both. - LoadAction then uses stuff from InputAction but without output name setting. - new function FormatParserStorage::put() which is opposite to get and stores world to a given ofstream with type from suffix. - SaveAction uses new FormatParserStorage::put(). - short form of LodAction is "l" not "p" - short form of SaveAction is "s", ScaleBox has no short form anymore Testchanges: - copied all from Simple_configuration/2/pre to ./post. - changes to test.conf: MaxPsiStep (if 0 given, then 3 is set). MaxMinGapStopStep (if 0 given, then 1 is set). InitMaxMinGapStopStep (if 0 given, then 1 is set). - changes to test.pdb: segName is tes (from _tes_t.pdb) not non. Obtaining molecule names from pdb file's segName is not implemented yet. - ParserCommonUnitTest::rewriteAnXyzTest(), we don't check for string equality but parse the output stream again and check whether first and second half of all atoms are equal with respect to position and element. - all regression test that diff an xyz file now use -I '.*Created by....*' - changed regression tests with respect to changed short forms. commit f03705f696ab4a9d6c37935af9a29048f199bdf9 Merge: 6e06bd5 e828c07 Author: Frederik Heber Date: Sun Dec 5 01:19:33 2010 +0100 Merge branch 'SubspaceFactorizer' into stable commit 6e06bd5894042aa085863fea17cf566f42e7a31b Merge: 589112b bbf1bd9 Author: Frederik Heber Date: Sun Dec 5 01:19:19 2010 +0100 Merge branch 'MatrixVectorContentRefactoring' into stable commit 589112be6795a12a7a887ba4005dda978bda9870 Merge: 5d4b731 a01144e Author: Frederik Heber Date: Sun Dec 5 01:18:31 2010 +0100 Merge branch 'FixingMemDebugChunks' into stable commit 5d4b731ab716069a5f604dfb95a1db006dfeaba1 Merge: 41e15b8 d754bbb Author: Frederik Heber Date: Sun Dec 5 01:17:34 2010 +0100 Merge branch 'MenuStructureChange' into stable commit 41e15b8d296401abbd6d9901e3ad1a9692986df2 Merge: 0af7ef3 b295ca6 Author: Frederik Heber Date: Sun Dec 5 01:16:53 2010 +0100 Merge branch 'FixLexicalCastTextDialog_QtQueryListPipe' into stable commit 4fbca9c2b6785a7839394eeab5fe9c6dad6c28cd Author: Frederik Heber Date: Sat Dec 4 19:05:33 2010 +0100 PdbParser::save() fully working. - added UnitTest for PdbParser. - split ParserUnitTest into Common and Tremolo. - split off classes PdbAtomInfoContainer and PdbKey into own modules. - PdbParser can now load ATOM and CONECT entries. commit e828c07cc83828399b494f75295e73daf5ad0852 Author: Frederik Heber Date: Sat Dec 4 19:10:56 2010 +0100 SubspaceFactorizer is now hierarchical. - higher order subspace matrices are only corrections to lower order ones. - i.e. eigenvectors obtained from there have all lower ones projected and substracted. commit 1fb318e13ebc1029d5ba1a68d3b01c62237ab05b Author: Frederik Heber Date: Sat Dec 4 19:11:17 2010 +0100 Added helper template function: ConvertTo() that converts a string to a desired value. commit 286af5fb9ad803eaed15af491597fbf6b924d817 Author: Frederik Heber Date: Mon Nov 22 19:00:17 2010 +0100 SubspaceFactorizerUnittest::SubspaceTest() - fully working compared to EigenvectorTest(). - we also have an iteration and the results are exactly the same for a 3x3 matrix at run 2 and 9. - classes Eigenspace and Subspace are thus for now fully working. commit 7d059dd842ec69d4f92d90a9d682739b6028ab89 Author: Frederik Heber Date: Mon Nov 22 18:59:56 2010 +0100 SMALLFIX: MatrixContent::setIdentity() - made cast from bool to double explicit. commit 9f9b5a8050ebe660ec28f9e48b98cdc192c90821 Author: Frederik Heber Date: Mon Nov 22 18:27:26 2010 +0100 Added some template operator<<() functions for std::list,map,multimap,set,vector. commit a06042e843c266378c28a07d857634215eb6f8b9 Author: Frederik Heber Date: Mon Nov 22 17:23:18 2010 +0100 SubspaceFactorizerUnittest::SubspaceTest() enhanced. - Now projection matrices and therefrom eigenspace matrices are constructed correctly. commit 58605562acab64d92776eafdb01c18caf23d7b60 Author: Frederik Heber Date: Mon Nov 22 17:22:59 2010 +0100 Made VectorContent::operator=() ASSERT more verbose. commit 9c529645733d09290760e9ebeff51081f40223b8 Author: Frederik Heber Date: Mon Nov 22 15:57:20 2010 +0100 New classes Eigenspace and Subspace that contain eigen(sub)spaces. - also added new test to SubspaceFactorizerUnitTest::Subspacetext(). - so far only constructs the full and nested sub spaces. commit f5bca22b78eaf9625472526767aee30ef21eac07 Author: Frederik Heber Date: Mon Nov 22 12:10:57 2010 +0100 SubspaceFactorizer now has the matrix dimension as an enum. commit 74237190563beadc942e60dbd56f5fd7b388031b Author: Frederik Heber Date: Thu Nov 18 19:24:28 2010 +0100 Subspace Factorizer is almost working. - for the testing (4x4) matrix, the middle eigenvectors are good, but the smallest and biggest are off by a few percent, yet converged ... commit a062e1a2664e207eac45146412e88672ce76b9c9 Author: Frederik Heber Date: Thu Nov 18 19:22:14 2010 +0100 BUGFIX: MatrixContent::operator*=(MatrixContent&)'ASSIGNS were wrong. - for a product with another matrix, not lhs.row==rhs.row, but rhs squared and lhs.columns == rhs.rows. commit 14cce656977d7ff643161db58293c9cca7ab5f3b Author: Frederik Heber Date: Thu Nov 18 19:21:41 2010 +0100 New getter for VectorContent::dimension. commit aab177d98e690f1248a0b4baa792a2038f929536 Author: Frederik Heber Date: Thu Nov 18 19:20:51 2010 +0100 BUGFIX: MatrixContent::getColumnVector() and MatrixContent::getRowVector() had calls to gsl_... swapped. commit 35fbef23b9da4ffe3159ed9a4a1fd9672698a932 Author: Frederik Heber Date: Thu Nov 18 19:20:11 2010 +0100 BUGFIX: MatrixContent::get...() not const member functions as should be. commit 3da2fb469f9384e940eef17ba9935099f76b7967 Author: Frederik Heber Date: Thu Nov 18 15:55:04 2010 +0100 New module MatrixVector_ops that contains matrix vector products. - all functions are made friend of Vector, VectorContent and MatrixContent as needed. Hence, has to be in distinct header file from these. commit 694eaeaa8cfed90f0d1a6fcce33a04b118565314 Author: Frederik Heber Date: Thu Nov 18 15:53:46 2010 +0100 Implemenation of Vector::Norm(), ... now depend on VectorContent. - made operator*[=](double) into member functions. commit 3dd9c7ca1b89a4b30a84806b5db5b0fa21e6fcca Author: Frederik Heber Date: Thu Nov 18 15:50:54 2010 +0100 New functions for VectorContent, partially copied from Vector. - new: Norm(), NormSquared(), Normalize(), getNormalized(). - implemented: DistanceSquared(), ScalarProduct(), Angle(). - FIX: operator*(VectorContent) is const member now. commit 40be553e468c5432cecad628aa323b3b2a23cf28 Author: Frederik Heber Date: Tue Nov 16 16:43:58 2010 +0100 Current stable version of SubspaceFactorizer. can: - functions embedSubspaceMatrix() and getSubspaceMatrix() to embed and to obtain the small block matrix from/in a big one - we construct the index set - we construct the block matrices - we solve the eigensystems - we transfer the eigenvalues back - we associate to original eigenvectors by parallelness, uniquely within a subset of indices. - we construct the new set of eigenvectors by averaging. can't: - resulting ev are not orthonormalized or checked to be - no iteration yet commit 0fd3f24772a3babab73bf386ab1328777738a36e Author: Frederik Heber Date: Tue Nov 16 16:43:30 2010 +0100 Scalar product operator implemented, taken from Vector. commit f453d2ed88e83b50d828778afe4b41f3afb313a3 Author: Frederik Heber Date: Tue Nov 16 16:43:17 2010 +0100 New VectorContent copy constructor for gsl_vector. commit 60dada681c8d81d228c315a78be44fcee3bdc6f4 Author: Frederik Heber Date: Tue Nov 16 16:41:53 2010 +0100 Added getter for MatrixContent:rows and ::columns, and for Row/Column/DiagonalVector. - RealSpaceMatrix::createViews() uses these get functions now. commit 4c57fbfc2c8aed284634ebccfde4fc6d01292498 Author: Frederik Heber Date: Tue Nov 16 14:20:29 2010 +0100 FIX: _object for toString() can and has to be const without any loss. commit d85c28d0a60ffc7686e3aab064475dce354a5cbb Author: Frederik Heber Date: Tue Nov 16 13:33:51 2010 +0100 Added Hadamard product by overloading MatrixContent::operator&(..) and operator&=(..). - the Hadamard product is a component-wise product which we need for subspace factorization. commit 04146220b0862ff96425b73f0ee9076a31b357ce Author: Frederik Heber Date: Tue Nov 16 13:22:39 2010 +0100 BUGFIX: operator<< for VectorContent placed "," at wrong position. commit 17fa816510f6b950b8a5edbeacf4f3cd95693f08 Author: Frederik Heber Date: Tue Nov 16 12:42:47 2010 +0100 MatrixContent::transformToEigenbasis() also working for non-symmetric real matrices. - we don't have to look for zero columns OR rows, as eigenvectors are stored column-wise and eigenvalues give clear identification of the right/non-zero ones. - also added ASSERT to MatrixContent::operator*(). commit 5eec98fc74e20ebf464cd1f75c19e0d45b825c07 Author: Frederik Heber Date: Tue Nov 16 12:22:30 2010 +0100 Subspacefactorizer can now be linked with just GSLLIBS. - i.e. we don't need ALLLIBS anymore. commit 13d1504cb6c549a18c96fb24463172b5f411e4c2 Author: Frederik Heber Date: Tue Nov 16 12:21:40 2010 +0100 Moved leastsquaremin.?pp to LinearAlgebra. - changed Makefile.am and LinearAlgebra/Makefile.am. - changed include in molecule.cpp, molecule_geometry.cpp and vector_ops.cpp. commit 6d5a104a348d8b5b9e69f59a022509811fb750cc Author: Frederik Heber Date: Tue Nov 16 12:17:37 2010 +0100 Added/Sorted some includes in LinearAlgebra and Exceptions. commit e4fe8d6bab9cf4dd5525442cf6174806c453318a Author: Frederik Heber Date: Tue Nov 16 12:16:06 2010 +0100 Moved defs.?pp to subdir (and library) Helpers. - hence, include had to be changed to Helpers/defs.hpp - and Makefile.am and Helpers/Makefile.am adapted - also in LinearAlgebra where MYEPSILON appears we have added the above include commit ef0c6bec93c0171ad946293a423b49bee2708b58 Author: Frederik Heber Date: Tue Nov 16 12:08:02 2010 +0100 Deleted gslvector.?pp from repository. commit 8e9ce1f9895161c968ecfcdfd3228bebdd711671 Author: Frederik Heber Date: Tue Nov 16 11:42:35 2010 +0100 Added MatrixViewContent to allow views on blocks of a gsl_matrix. - dummy struct BaseCase is now Matrix/VectorBaseCase. commit b4cf2b752620d3a300d2fa3fef55de302a2b7065 Author: Frederik Heber Date: Tue Nov 16 10:45:32 2010 +0100 First commit of SubspaceFactorizerUnitTest. commit bbf1bd95420fd2556318900509aeb2a2b49865e8 Author: Frederik Heber Date: Mon Nov 15 21:00:30 2010 +0100 Extended VectorContent class. - VectorContent formerly has been just a structure to contain the gsl_vector due to forward declaration reasons. - now VectorContent is a true wrapper to gsl_vector, i.e. all functionality that is now specific to 3 dimensions has been shifted from GSLVector over to VectorContent. - VectorContentView is preserved to allow for VectorContent as a view on a row or column of a matrix. - changed and renamed unit test gslvectorunittest -> VectorContentUnitTest - GSLVector is not used anymore anywhere - one long-sough error was a missing assignment operator filled-in in a wrong manner by the compiler for VectorContent. Note that: - gsl_vector is still used at many places commit 5ada941f20587a943dbda6033b6e4d8c01b3ce67 Author: Frederik Heber Date: Mon Nov 15 15:06:20 2010 +0100 Removed files gslmatrix.?pp. - also removed last include in vector_ops.cpp. commit 6c1cd12eee33413bbb6cb70f425ff114bacb2e5b Author: Frederik Heber Date: Mon Nov 15 15:04:49 2010 +0100 tempfix: typo in MatrixContent::...pointer contained ref to GSLMatrix. commit c134d91b31b1473ed8101493c441a723f670152a Author: Frederik Heber Date: Mon Nov 15 15:04:02 2010 +0100 tempfix: removed transpose ... messages. commit 0d4424de796ea0eb6de8098859070b5acdb6edae Author: Frederik Heber Date: Mon Nov 15 15:02:38 2010 +0100 Made gslmatrix obsolete. - Transfered property and swap...() functions from GSLMatrix to MatrixContent. - Line::getIntersection() uses now MatrixContent. - made unit tests for gslmatrix into unit test for MatrixContent. commit cca9efb7bf18583f35d0380acb97e9034c42bbe7 Author: Frederik Heber Date: Mon Nov 15 13:58:27 2010 +0100 Renamed Matrix to RealSpaceMatrix. - class Matrix only represents 3x3 matrices, whereas we are now going to extend the class MatrixContent to contain arbritrary dimensions. - renamed class and file commit 3bc9264606122a0c59b0d7bf20669cc353efbbec Author: Frederik Heber Date: Mon Nov 15 13:36:18 2010 +0100 Extended MatrixContent class. - MatrixContent formerly has been just a structure to contain the gsl_matrix due to forward declaration reasons. - now MatrixContent is a true wrapper to gsl_matrix, i.e. all functionality that is now specific to 3 dimensions has been shifted from Matrix over to MatrixContent. commit 9eb7580cd9f1b192263dddcbef45a27b39fc5eca Author: Frederik Heber Date: Mon Nov 15 11:29:25 2010 +0100 Renamed Matrix setter functions to unify naming. - Matrix::one -> Matrix::setIdentity - Matrix::zero -> Matrix::setZero - Matrix::rotation -> Matrix::setRotation commit cfc53b40fcd322688790ea68e3e591670d3880ae Author: Frederik Heber Date: Mon Nov 15 11:24:24 2010 +0100 Added template function toString(), is included in Assert.hpp. - std::string() only works on char* not e.g. int. There we have to use stringstream. This function encapsulates this conversion. commit a01144ecd22d2dc72de922a73d53eb3e8a06c02b Author: Frederik Heber Date: Thu Nov 11 19:49:23 2010 +0100 MEMFIX: quitAction is not free'd anymore. - this is done by ActionRegistry, as it is registered. - also we empty returnFromActions list properly. commit 0e08d58b5b181aaa9bc39669605f110092dab17f Author: Frederik Heber Date: Thu Nov 11 19:48:45 2010 +0100 MEMFIX: Submenus were not free'd. - introduced list of submenus to class TextMenu. - Submenu TextMenus are deleted in destructor of TextMenu. - also ShortcutMap is cleared there. - in TxMenu list of MenuItems is properly erased now. commit b2151f5f3c6feafd6bdc52bcb8ae01e32953dec6 Author: Frederik Heber Date: Thu Nov 11 19:45:09 2010 +0100 Removed some virtual keywords in front of classes that are not base classes, but only derived ones. commit c82d0c82d4b642535ea65dae019a045eb40cf376 Author: Frederik Heber Date: Thu Nov 11 19:43:28 2010 +0100 MenuDescription is now a singleton. - also all Maps are static objects, allocated and filled dynamically in the constructor, removed in the destructor. commit d5240d74405d4ff10e28079491467650d6a36d25 Author: Frederik Heber Date: Thu Nov 11 15:39:10 2010 +0100 FIX: Linking to non-system boost is working now. - FIX: BOOST_CPPFLAGS was not present in AM_CPPFLAGS in all Makefile.am - Hence, not the correct includes were used and linking occured with undefined reference errors (because of version conflict between system-wide installed and non-system boost) - validate()s now make version check of boost as signature of validation_error)_ changed in boost 1.42 - added AX_BOOST_SYSTEM to configure.ac and BOOST_SYSTEM_LIB to src/Makefile.am and src/unittests/Makefile.am. Otherwise we have to set an rpath to let it find the lib needed by other boost libs in non-system boost configs. commit ae21cbd6997bd376bb6a338f21a97f19796d175b Author: Frederik Heber Date: Wed Nov 10 15:21:55 2010 +0100 MEMFIX: new function AddStaticEntitiestoIgnoreList() for putting static variables on ignore list. - static classes still may have dynamically allocated contents in their constructors. Hence, we have to put their contents - which will get deleted - into the Memory::ignore map to avoid their admonishing. commit 41449c171ea776d7dcc91a7b1eaaa12893873edd Author: Frederik Heber Date: Tue Nov 9 22:56:18 2010 +0100 MEMFIX: Action::success and Action::failure are not recognized by MemDebug. - Although these are placed into boost::share_ptr with Memory::ignore, this does not work out of the same reasons we have given in the last commit: boost::shared_ptr makes same dynamic allocation which is not ignored. - Hence, we have a new (static) function removeStaticStateEntities() that calls reset() on these shared_ptrs and which is called in cleanUp(). commit 052afe13bdc0d95e03536a565fb005e73ef89520 Author: Frederik Heber Date: Tue Nov 9 17:16:58 2010 +0100 MEMFIX: ofstreams in ...logger.hpp as static objects were not recognized by MemDebug. - now they are allocated via new in the constructor of the ...logger's. - Calling new ofstream(..) globally would cause segfaults in some unit tests. - Constructor is private (due to logger's being singletons), hence this is safe. NOTE: the problem is not the static object itself, but what is allocated dynamically inside the object's constructor (this also concerns previous fixes) commit 694d841455d8fa728517b6d9113d7a59531897be Author: Frederik Heber Date: Tue Nov 9 16:42:30 2010 +0100 MEMFIX: static factories map of UIFactory was not clear()'ed in destructor. - hence, boost::shared_ptr still had a user and have not been deleted. - TESTFIX: ActionSequenceTest and manipulateAtomsTest segfault. - the problem was the static hasDescriptor boolean. It made the dummy factory getting registered only once, despite its being removed during UIFactory:: purgeInstance() in tearDown(). - hasDescriptor is now a member variable and set to false in tearDown(). commit 95c0abf00cb1dbccd2cda17e2e09fc0f295e2ffd Author: Frederik Heber Date: Tue Nov 9 16:16:40 2010 +0100 MEMFIX: MemDebug was confused by const Action objects, changed to dynamically allocated. - before we used: const ACTION INSTANCE, now we allocate via new. commit d2b28f15457da25888fab2bdd7e87cf6216948e4 Author: Frederik Heber Date: Tue Nov 9 16:13:12 2010 +0100 Added missing MemDebug include to various implementation files. commit d754bbb30af7537ab3706f0b5cec46f0acb27940 Author: Frederik Heber Date: Tue Nov 9 16:03:10 2010 +0100 All TextQuery now show getDescription()+": " on handle() call. - getTitle() is only a token ... not a description commit 5eebbc78b9dba5f107dc6b3f23314d94c91f7469 Author: Frederik Heber Date: Tue Nov 9 16:02:27 2010 +0100 FIX: FileTextQuery was not working properly. - somehow getline from std::cin does not work ... but std::cin >> ... does commit 670cd1cb385612d421aad5ee421eab45bc65f878 Author: Frederik Heber Date: Mon Nov 8 18:19:07 2010 +0100 FIX: Missing MemDebug.hpp before TextMenu template declaration. commit 1e086111afdb5ad88cee32c659e63cfd0cef4a02 Author: Frederik Heber Date: Mon Nov 8 17:48:38 2010 +0100 Qt stuff is not compiled into libMolecuilder but libMolecuilderQtUI. commit 87db7aecda4c8363f0b67c5eab5d571842b9c9a0 Author: Frederik Heber Date: Mon Nov 8 15:19:35 2010 +0100 Moved declaration for all CommandLineQuery.. into own header file. - Query module just need this header file. - CommandLineDialog declaration just has forward declarations. commit a5ddf04694c4e27ef6c7c442361c2092c16af622 Author: Frederik Heber Date: Mon Nov 8 15:06:23 2010 +0100 All Qt...QueryPipe now have their own header file. - Query just include the QueryPipe they need. - old declarations moved out of QtDialog.hpp which became a lot slimmer in the process. commit 308aa43f3e30fb9a88d9923d90ff3940289ce5a3 Author: Frederik Heber Date: Mon Nov 8 14:22:05 2010 +0100 Moved declaration for all QtQuery.. into own header file. - Query module just need this header file. - QtDialog declaration just has forward declarations. commit 738ae1e8b6d1be253565c15e50c3cb7b0cdfabba Author: Frederik Heber Date: Mon Nov 8 14:05:32 2010 +0100 Moved declaration for all TextQuery.. into own header file. - Query module just need this header file. - TextDialog declaration just has forward declarations. commit 3a21a725fe8654c46053fbab3d721519872c4fa0 Author: Frederik Heber Date: Mon Nov 8 14:04:37 2010 +0100 Moved validate() functions for boost::program_options into own module. - removed from CommandLineParser.cpp. commit e9be39efd3548091ce2ee01c2e279982afc4c11d Author: Frederik Heber Date: Mon Nov 8 13:32:45 2010 +0100 Renamed SeperatorItem -> SeparatorMenuItem. - in files and declarations. commit f0f9a60bdc0af971268af45d96cd8b8a9875cb05 Author: Frederik Heber Date: Mon Nov 8 13:15:08 2010 +0100 Placed TxMenu::LeaveAction implementation and declaration into its own module. - TxMenu now only contains forward declaration commit 8f3f407211aab85d7d899e17a7d633813f02ad83 Author: Frederik Heber Date: Mon Nov 8 11:31:40 2010 +0100 Added documentation on the new menu structure. commit 0af7ef3b3ed30f65ad3059fd8a14ef773be0e070 Author: heber Date: Wed Nov 10 15:11:13 2010 +0100 MEMFIX: quitAction is still deleted in TextWindow's destructor. - deletion is done by ActionRegistry, where is is registered. commit b59da6e8dbaa0c9c1ed4e190d2b7cd4ccec6152a Author: Frederik Heber Date: Mon Nov 8 10:36:45 2010 +0100 Refactoring of Menu structure for Qt and Text UI done. - Menu is now the initialising class for the menu structure. - MenuInterface contains virtual declarations of all functions that Menu needs to call. - TextMenu and QtMenu are templated classes which contain both Menu and MenuInterface and implement the virtual functions. - class TxMenu and its ...MenuItems contain most of the old Menu code for the text-based system. Most of the stuff, such as triggers, are now hidden internally. - in ..MainWindow() we basically just construct the desired Menu and call init at the correct time. commit 5813ac0cc79578b47db146eb94c5be04a9e6ac7b Author: Frederik Heber Date: Sat Dec 4 23:54:22 2010 +0100 FIX: forgot to move using boost::lexical_cast from TextDialog to QtQueryListPipe. commit b295ca6bd0b38b48a6070c17818c7b8f1ab98686 Author: Frederik Heber Date: Sat Dec 4 23:54:22 2010 +0100 FIX: forgot to move using boost::lexical_cast from TextDialog to QtQueryListPipe. commit ffb9ad3ad26c892a8aa0013c675637237728b887 Author: Frederik Heber Date: Mon Nov 1 21:29:58 2010 +0100 FIX: Menu entries are again correctly added to QtGui part. - also expanded MenuDescriptions to contain position for each menu and submenuing. - MenuDescriptions::MenuSet was replaced by MenuPositionMap which is iterable. commit e262c76e616587e3eb48650a71afa8c79d2eeb09 Author: Frederik Heber Date: Mon Nov 1 18:26:54 2010 +0100 Removed conversion scripts for ActionTraits refactoring. commit 7cb4501e7de75b105a08a21b90edfc17c59e2e9f Merge: c38826b 76cec6c Author: Frederik Heber Date: Tue Nov 9 16:37:52 2010 +0100 Merge branch 'FixOptionRegistryMemLeak' into stable commit 76cec6c27521e13434c84ce3ad89ba64ea437510 Author: Frederik Heber Date: Tue Nov 9 16:35:53 2010 +0100 MEMFIX: OptionRegistry has not been purged in cleanUp(). commit c38826b3bf15f17943193456d55be73246628ebd Author: Frederik Heber Date: Mon Nov 1 18:26:25 2010 +0100 Removed debug statements in ..Traits() constructors. commit e4afb4b989433224538ab4ba0f471e4573bbeaf2 Author: Frederik Heber Date: Sat Oct 30 21:55:54 2010 +0200 Huge refactoring: Introduction of Traits to Actions. This change is really big but the introduction of the Trait concept (at least in its current light form) is so fundamental that lots of pieces had to be changed in order to get everything working. The main point why it was necessary to add these traits in the first place was to comfortably allow for adding extension of Actions information-wise, i.e. with stuff that is only important for the QtUI, such as icons, or tooltips, ... This extra information should not be stored with Action itself, as it has nothing to do with the workings of the Action. And neither should it get stored with some blown-out-of-proportions MapOfActions class ... The gist of the change is as follows: - OptionTrait contains the token, description, shortform and type of an option, such as ("position", "position in space, none, typeid(Vector)). - ActionTrait is the derived form for actions where additionally MenuPosition and MenuName are stored (and probably more to come for the GUI), also we have a set of OptionTrait instances, one for each option of the Action. - Action then contains this ActionTrait, specialized for each Action. - the preprocessor macros have been enhanced to gather all this information from the .def files. - MapOfActions is gone. Completely. Most of its use was to store this extra information and the ValueStorage part now is just in class ValueStorage. - ValueStorage is no more an interface to MapOfActions but as the name says a (type-safe) ValueStorage. Listing the (remaining) changes in alphabetical order of the class: - Action - member value ::name dropped, ::getName() uses ActionTraits::getName() - new define NODEFAULT which is used in paramdefaults in .def files - all derived actions classes such as Process, Calculations, MakroAction,... have been adapated to use the ActionTrait concept as well. - ActionHistory - extraced RedoAction and UndoAction, shifted implementation into their own object files and they use .def files as well (i.e. streamlined with method used for other actions) - CommandLineParser - CommandLineParser goes through ActionRegistry to get arguments and types to add - we use TypeEnumContainer which before was present in MapOfActions, as CommandLineParser::AddOptionsToParser() needs enums in its switch statement, we can't switch on types and types are not known until run-time. Hence, templates won't do either. - ShortFormMap is created here now (and used here only) - File was moved over to UIElements/CommandLineUI. - MenuDescription - contain information on Menus such as name, ... - new unit test checks for consistency - molecule - const member functions: Copy(), Output() and OutputBonds() - OptionRegistry - new registry class for options only - we want the same type throughout the code for each token, e.g. "position" - the registry containts checks for consistency - OptionTrait - default values are specified in paramdefaults, none are given by NODEFAULT - introduced default for translate-atoms, point-correlation, pair-correlation - Registry pattern - new unit test, but only sceleton code so far - ...Query, also ...Pipe - atoms, molecule and elements are now all const - also ValueStorage's signatures all have const therein - ValueStorage - set/queryCurrentValue from MapOfActions - at times VectorValue has been in .def files where Vector was in the signature. This is cleared. Such stuff is only present for e.g. BoxVector being queried as a Vector. But this is a feature and intended. - World - most of the (un)selection functions now work on const atoms and molecules - in one case we need a const_cast to remove this, but this is intentional, as the vector of selected atoms stores non-const pointers and this is ok. There is only one test which had to be changed slightly because a specific option token as "position" must now have the same type everywhere, e.g. always Vector. - TESTFIX: Simple_configuration/2: --position -> --domain-position (and associated to BoxVector) commit 23359f078466fee0fe57f86bed6e93885acb877e Author: Frederik Heber Date: Sat Oct 30 21:53:44 2010 +0200 Assert's internal check now uses std::string instead of const char *. - This allows for stuff like: "i = "+std::string(i)+" is too big" - no changes are necessary elsewhere commit c1012b535514cd90386af7e9511caed69adfc649 Author: Frederik Heber Date: Tue Oct 26 16:14:41 2010 +0200 Constructor of TextMenu now takes const string as 2nd argument. commit 20d46cdad72d15ed708a6d07cac8d9a32eacb773 Author: Frederik Heber Date: Tue Oct 26 16:14:20 2010 +0200 FIX: Removed unnecessary MapOfActions include. commit 53be342642ecc5d8c92481d78bf7924d629aad3f Author: Frederik Heber Date: Tue Oct 26 16:04:10 2010 +0200 ActionTraits returns also MenuName(), MenuPosition(), and also OptionDescriptions(). - is filled within ../src/Actions/Action_impl_header.hpp from MENUNAME and MENUPOSITION. - OptionDescriptions taken from paramdescriptions and paramtokens. - OptionDescrptions are also iterable. commit 8bcf3f12b38ffa3e7252dadca491edacb57f7d05 Author: Frederik Heber Date: Tue Oct 26 15:57:49 2010 +0200 New class MenuDescription containing information on menu items. - basically, shifted information away from MapOfActions. commit d57341daabb0139273e143142890dd48dd9c3dd5 Author: Frederik Heber Date: Tue Oct 26 15:56:46 2010 +0200 Replaced ACTION::NAME in .def files by contents DESCRPTION. - in ActionTrait constructor we cannot access Action (i.e. NAME) - also, this is inconsistent and errorprone - ACTION::NAME has to be remembered as the shortform for an Action beloning to the action - ACTION may be spelled out and thus also mis-spelled. - conversion script contained in src/Actions/convert4.sh. commit 052bfd8c4d6d461cd6c8c5091bd84124a8586af1 Author: Frederik Heber Date: Tue Oct 26 14:24:03 2010 +0200 Added MENUNAME and MENUPOSITION to each Action's .def. - MENUNAME is lower case of CATEGORY and within ticks "". - MENUPOSITION has been extracted from MapOfActions. - conversion script is in src/Actions/convert3.sh. commit fc192f60e82753a72ba51f024fbbd313fb147f0f Author: Frederik Heber Date: Tue Oct 26 14:16:57 2010 +0200 Added paramdescriptions to the .def of all Actions. - option descriptions from MapOfActions. - action description taken for (...::NAME) parameters. - conversion script is in src/Actions/convert2.sh. commit 24fbf3fd91769be68fa1acf1a82f01ac52df3ca1 Author: Frederik Heber Date: Tue Oct 26 12:43:36 2010 +0200 All specialization of ActionTraits now contain specific information. - new defines in Action_impl_header.hpp: DEFAULTVALUE, DESCRiPTION, SHORTFORM, TYPEINFO. - i.e. removed the MapOfActions' short-wiring. - script used for extraction is in src/Actions/convert.sh. - we cause a compilation error if DESCRIPTION or TYPEINFO are missing. - FIX: added some typeinfos as void where missing. commit 2a6a2c7c7d2319e0df9b71e8317ab569311ebbd8 Author: Frederik Heber Date: Tue Oct 26 11:44:19 2010 +0200 Removed MapOfActions::populateActions(). - Action prototypes are now instantiated within the object file, as they register automatically with the ActionRegistry and can henceforth be used. - new define INSTANCE with a sort of unique name. - instance is const and hence not to be used directly. - MapOfActions::populateActions() removed in CommandLineWindow, QtMainWindow and TextWindow classes. - NOTE: this hopefully remedies the problem of forgetting to add new Actions. - Registry does not cleanup() in its destructor, but function may be called from derived class if desired. - All Action prototypes are destroyed at end of program and hence cleanup() would cause memory corruption. commit bc2990df0e403a03ab9f9fcaeb6c54b49d50ae81 Author: Frederik Heber Date: Tue Oct 26 11:34:45 2010 +0200 Using ActionTraits::getDescrption instead of MapOfActions::... - i.e. this is the short-wiring - note that third UI (CommandLine) uses MapOfActions indirectly (through CommandLineParser) commit 4885f85a66df7b06abe99c32b66b07d82405fc5a Author: Frederik Heber Date: Tue Oct 26 11:27:08 2010 +0200 Introduced new getters to MapOfActions and ValueStorage. - new functions are getCurrentValue (string not as type!), getDescription, getShortForm, getType - these are need to short-wire Traits through MapOfActions. commit a8188deed094aea508332ee44b27c211808bf172 Author: Frederik Heber Date: Tue Oct 26 11:20:41 2010 +0200 Renaming MapOfActions::CurrentValue -> CurrentValueMap. commit df32eec66d050ebe15e7e87b16f4dc75abca8de8 Author: Frederik Heber Date: Tue Oct 26 11:06:37 2010 +0200 New class ActionTrait(s). - ActionTrait is the template class that is specialized for every Action. - ActionTraits is the interface that is inherited by every specialization. - the interface Action contains AcionTraits itself. - each specific Action has a specialized ActionTrait<> contained. note - so far, everything is short-wired through MapOfActions. - later the specialization will have specific constructors and get info therein. commit 6e1e107497aecdfcac9e31ef5756edfec6b550c0 Author: Frederik Heber Date: Tue Oct 26 10:44:34 2010 +0200 Put cleaning of Registry out of destructor into cleanup() function. commit 573ca5fad13d63566ba36dd8f4507d519d51fa15 Merge: 8df74db 6940bb5 Author: Frederik Heber Date: Sat Oct 30 20:43:54 2010 +0200 Merge branch 'FixBoostFilesystem' into stable commit 6940bb556236165ebf89b8495b117042efebb708 Author: Frederik Heber Date: Sat Oct 30 20:43:26 2010 +0200 FIX: Forgot to add m4 scripts for boost::filesystem. commit 8df74dbef13fb1628a8f98eeaac6b7c477e95818 Author: Frederik Heber Date: Mon Oct 25 19:11:33 2010 +0200 Split off all ...Query and ...Pipe boilerplate classes. - each subclass in the dialog nor resides in its own file in a folder called Query (or Pipe). - only submoduled (no header files created, except for templated QtQueryListPipe class) - includes have been separated commit 57a6ea1a91e89f394ecb0bdcf58b45e3ca1587e9 Merge: 9784cf6 379b7e0 Author: Frederik Heber Date: Mon Oct 25 19:14:20 2010 +0200 Merge branch 'FixQtRenamed' into RemainingQtQueries commit 379b7e0da2e4b8cdad2824a51921e5596c46515c Author: Frederik Heber Date: Mon Oct 25 19:13:30 2010 +0200 BUGFIX: Fixed wrong renaming of USE_GUI_QT to USE_GUI_Qt. commit 9784cf64a18612bd681f2b6731f193dddc39cc25 Merge: 4cf323d bd23909 Author: Frederik Heber Date: Mon Oct 25 16:36:30 2010 +0200 Merge branch 'FixBoostFilesystemintegration' into RemainingQtQueries commit bd239098c2f3804d7b8294ca80990baa48c79c2e Author: Frederik Heber Date: Mon Oct 25 16:29:06 2010 +0200 BUGFIX: new boost::filesystem led to non-parsing of files. - BUGFIX: MapOfActions::TypeMap is not only important for set/queryCurrentValue but also for CommandLineParser. - CommandLineDialog::FileCommandLineQuery::handle() expects boost::filesystem::path - new validate for boost::filesystem::path - AddOptionsToParser was missing case for enum File - no enum File in TypeEnumMap - BUGFIX: InputAction - now setting prefix for all parsers even if filename nor present - now always setting name of last inserted molecule in World::getInstance().getMolecules() - not returning Action::failure when not present, only when not has_filename() - BUGFIX: PdbParser and TremoloParser were not inserting, but only creating a new molecule - BUGFIX: TremoloParser::load() nad no ASSET(false) as it's not implemented. - BUGFIX: as molId of 0 may occur, PdbParser::save() prints -1 for homeless atoms now - TESTFIX: Simple_configuration/2/test.pdb has molnr of 0 instead of former 1 (see above) commit 4cf323d81658274e55e522306030678b93d2c779 Author: Frederik Heber Date: Mon Oct 25 14:08:39 2010 +0200 Renamed QT -> Qt in files, dirs, and class names. commit 81126aaa1c532d13341be518be2f6758858a3902 Author: Frederik Heber Date: Mon Oct 25 11:13:19 2010 +0200 Added ElementsQTQuery, MoleculesQTQuery, VectorsQTQuery. - note: implementation was present but queries were not registered. commit 41167c8739c609a9dafeb48042b2cf1989edf758 Author: Frederik Heber Date: Mon Oct 25 11:10:22 2010 +0200 Added BoxQTQuery. commit c96c66b9929d064bdd99474f03b644e0fa4ea88d Author: Frederik Heber Date: Mon Oct 25 10:32:49 2010 +0200 Added Atom(s)QTQuery. commit ee62e410040b62b213378576c1c85f0f6526af60 Author: Frederik Heber Date: Sun Oct 24 22:24:01 2010 +0200 Added BooleanQTQuery. commit 9d457dd65f4781fc374f639f526e2d46b36dfbf0 Author: Frederik Heber Date: Sat Oct 23 16:36:51 2010 +0200 Added EmptyQTQuery. commit f001ca4daf524d143bf68c17775ef50b2edf5a8a Author: Frederik Heber Date: Sat Oct 23 16:36:11 2010 +0200 FIX: result variable Dialog::FileQuery::tmp is now set. Label added in front of QLineEdit. commit db7cb048c490f5b4cabe2c62cd255faa628d2cca Author: Frederik Heber Date: Sat Oct 23 16:32:46 2010 +0200 DOCU: Added howto to add queries. commit 6f5dfe559a8279d64fa1e293a546f8d74ece2ef3 Author: Frederik Heber Date: Fri Oct 22 18:13:36 2010 +0200 Added boost::filesystem usage for input files. - parameters for Action input now have type boost::filesystem. - rewritten Actions to use boost::filesystems - in the progress of writing FileQtQuery to present a file dialog. commit e4decc83cfcf83ef6b15c6d95ce0c741a748f8dd Author: Frederik Heber Date: Fri Oct 22 18:12:42 2010 +0200 Changed a bit the sequence of adding BOOST_LIBs. commit 94962cafa77b2f6b6b6b08ea294de0af431f5009 Author: Frederik Heber Date: Thu Oct 14 14:56:21 2010 +0200 boost::filesystem required in configure.ac commit 7230be17a3c947931703abdd76da666a44588cf3 Author: Frederik Heber Date: Thu Oct 14 11:57:24 2010 +0200 Added WarrantyAction. This closed ticket #117. commit ef3640ed17b05e29b1b7c6a1a72ba7e5024af5fc Author: Frederik Heber Date: Sat Aug 28 08:21:48 2010 +0200 TESTFIX: Filling/3 does not need MaxDistance as parameter. commit eee966fe34197e1773f114db10205f2b7ad6f78e Author: Frederik Heber Date: Sat Aug 28 08:08:52 2010 +0200 New Action FillVoidWithMoleculeAction. - in contrast to FillWithMoleculeAction we fill all empty space, not just outside of surfaces. - TEST: new tests in Filling/3 that fill with butane and a tenside micelle. - new function FillVoidWithMolecule(). commit a42054a57dce05541025613b38ddca2bfb93603a Author: Frederik Heber Date: Sat Aug 28 08:07:02 2010 +0200 Extended FormatParserStorage. - renamed ParserSuffix -> ParserSuffixes. - new lookup table ParserLookupSuffixes. - renamed getType -> getTypeFromName. - new function getTypeFromSuffix. commit 1997630777d65898f53a1899c5ea260a2850aa17 Merge: a6e6b5c f8982c4 Author: Frederik Heber Date: Sat Aug 28 06:13:06 2010 +0200 Merge branch 'FixDoublesinExceptionsMakefile.am' into stable commit f8982c42eb467c7951ed37f012f50d6066733d46 Author: Frederik Heber Date: Sat Aug 28 06:12:50 2010 +0200 FIX: NotInvertibleException.hpp was present twice. commit a6e6b5ce7c3675b17615ce9fc4f938f0ccc32ef7 Merge: 6c438f9 45924c1 Author: Frederik Heber Date: Sat Aug 28 06:08:45 2010 +0200 Merge branch 'FixExceptionsIncludeDir' into stable commit 45924c1c4900321275c7d22c75650d2dcff4a2c1 Author: Frederik Heber Date: Sat Aug 28 06:08:25 2010 +0200 FIX: include dir for Exceptions headers was wrong. commit 6c438f95957e5e36d17eaf3a715bb46a41596300 Merge: 2ad4824 fd49053 Author: Frederik Heber Date: Sat Aug 28 05:17:48 2010 +0200 Merge branch 'StructureRefactoring' into Shapes Conflicts: src/Box.cpp src/Box.hpp src/Descriptors/AtomShapeDescriptor.cpp src/Descriptors/AtomShapeDescriptor.hpp src/Descriptors/AtomShapeDescriptor_impl.hpp src/LinearAlgebra/Line.cpp src/LinearAlgebra/Line.hpp src/LinearAlgebra/Matrix.cpp src/LinearAlgebra/Matrix.hpp src/Makefile.am src/Shapes/BaseShapes.cpp src/Shapes/BaseShapes_impl.hpp src/Shapes/Shape.cpp src/Shapes/Shape.hpp src/Shapes/ShapeOps_impl.hpp src/Shapes/Shape_impl.hpp src/unittests/ShapeUnittest.cpp - AtomShapeDescriptor had been implemented doubly. - LineSegment* moved to LinearAlgebra/ - BaseShapes:: Cuboid is from (0,0,0) and not from (-1,-1,-1) to (1,1,1) - had to fix ShapeUnittest - some overlap in Shapes due to getHomogeneousPointsOnSurface added in stable. - BUGFIX: Matrix::transpose() did not allocate MatrixContent::content. - merged BaseShapesUnitTest into ShapeUnitTest. commit fd49053e27109f166b1c159007a0e33103499934 Merge: 8fd9346 6535429 Author: Frederik Heber Date: Sat Aug 28 03:45:13 2010 +0200 Merge branch 'stable' into StructureRefactoring commit 6535429872e16678107267e6d6209cddb72d7faa Merge: 74a444f 701ad64 Author: Frederik Heber Date: Sat Aug 28 03:39:35 2010 +0200 Merge branch 'FixSubgraphDissectionMerge' into stable Conflicts: src/Actions/FragmentationAction/SubgraphDissectionAction.cpp removed merger leftover stuff, conflicted with later updates, but later are current. commit 701ad6436949415e2b3ee7e2aa502fe7180c1859 Author: Frederik Heber Date: Sat Aug 28 03:31:44 2010 +0200 FIX: Merge stuff still left inside. commit 74a444f9266857ac3c0a69758f1ef0a44d0f7ede Author: Frederik Heber Date: Sat Aug 28 02:31:59 2010 +0200 TremoloParser can now deal with copied molecules/atoms. - as some information of atoms is not stored in the World but in an internal struct, we can not easily have this information in place when atoms have been copied. Default values would be used instead those of the original atoms. Instead, we now use the father to take its values. commit dc1d9ec000ed76a1da691408cbc5dab357860d82 Author: Frederik Heber Date: Sat Aug 28 00:17:27 2010 +0200 Several bugfixes for TremoloParser. - overloaded readAtomDataLine to also accept molecule*. - BUGFIX: TremoloParser::writeNeighbors() and TremoloParser::saveLine() write ...->getId()+1. - BUGFIX: TremoloParser::writeNeighbors() forgot to increase currentBond iterator. commit 1a7fd2c0335923642805cc4cb8ae59ca58748ad8 Author: Frederik Heber Date: Fri Aug 27 23:44:59 2010 +0200 New Action MoleculeAction/CopyAction. commit 76ff552147ff66b9fe10e30958abcb4ef05aa517 Author: Frederik Heber Date: Sat Aug 28 00:14:33 2010 +0200 BUGFIX: molecule::CopyMolecule() was broken. fixes: - for loop over Bonds was wrong (copy&paste from one where bonds are removed) - leftiter and rightiter were looking wrongly at the original, not the copy molecule. commit 7d8342bd474d4727096bdd22952cb35fbc6b3e72 Author: Frederik Heber Date: Fri Aug 27 23:15:03 2010 +0200 SubgraphDissectionAction does not delete bonds anymore and bugfixes regarding its redo. - Only creates BondGraph of system when no bonds are present. - redo was not working correctly due to wrong end state of performCall(): - ids were wrong. - general MoleculeListClass was not filled correctly. - fathers were not corrected. - NOTE: This is all obsolet when DepthFirstSearchAnalysis does not copy anymore. commit c449d9b8a0ac9cca5b6e85e320c3732e5c61ccee Author: Frederik Heber Date: Fri Aug 27 23:05:18 2010 +0200 Added new Action ConstructBondGraphAction. commit af2c424c3fdc756190dc3577a68e02c637a3883b Author: Frederik Heber Date: Fri Aug 27 22:58:40 2010 +0200 LinkedCell constructor rewritten. - had to introduce getValue(iterator) to: molecule, tesselation, LinkedCell::LinkedNodes - LinkedCell::LinkedNodes is not a typedef anymore - new class LinkedCell::LinkedNodes derived from stl::list to add getValue(iterator). - LinkedCell constructors changed: - use template for all classes that have begin(), end() and ... sigh ... getValue() - Argh! STL containers do all have begin() and end() but no consistent operator* (maps return pair<> ...) - specialized version for PointCloud derivatives - various functions had to be changed due to changed signature of LinkedCell constructor commit 21585fa783cda272b17cdf72bc467cda038347a8 Author: Frederik Heber Date: Fri Aug 27 14:30:25 2010 +0200 Added getter/setter for PdbParser::atomIdMap(). commit bb6193865ee69d221ba8b130353ded6a0f4eb7e3 Author: Frederik Heber Date: Fri Aug 27 12:37:13 2010 +0200 Added PdbParser with save capability. - load does not yet work. - added test part to Simple_configuration/2 (new file test.pdb) commit 5c6946cfd5f8773c487f84e0b4a983678eec8c83 Author: Frederik Heber Date: Fri Aug 27 12:25:55 2010 +0200 FormatParserStorage extended a bit. - new functions add(type) that accept either parser name or ParserTypes and adds the respective class. - new function getType(type) that accepts a parser name and returns the type. commit 3ae731331613c6806f4a83a01d7417d215c6877a Author: Frederik Heber Date: Tue Aug 17 15:44:11 2010 +0200 Added initial PdbParser. commit fbcd5cbe1065a55330f11fa45b6b125f92124b39 Author: Frederik Heber Date: Fri Aug 27 14:29:12 2010 +0200 BUGFIX: FragmentationSubgraphDissectionAction::performCall() did not produce bond structure in disconnected molecules. - removed FillBondStructureFromReference() call at some point which is necessary to re-create the bond structure as long as we copy the atoms. commit b5cf6c48a6bcd491bcd50d6838adbfd498feae9e Author: Frederik Heber Date: Fri Aug 27 14:08:50 2010 +0200 BUGFIX: BondGraph::max_distance is used for LinkedCell cell length but does not contain BondGraph::BondThreshold. commit e8926e1b8f716585ac54ff5480a69b8bfa36d526 Author: Frederik Heber Date: Fri Aug 27 12:42:08 2010 +0200 BUGFIX: molecule::AddCopyAtom() did not set the copied atom's molecule. commit f9183b6731150d9efa274b21694d769ecc6183b1 Author: Frederik Heber Date: Fri Aug 27 11:44:17 2010 +0200 BUGFIX: graph info per bond is now output nicely. - added operator<< to GraphNode class. - changed GraphNode::OutputComponentNumber to receive ostream as parameter. - is used in rewrite of GraphNode::OutputGraphInfo(), molecule::OutputGraphInfoPerBond() commit 231b5e21a06b3aa8f014d4f11b9c5d5dc1c1ec31 Author: Frederik Heber Date: Fri Aug 27 11:32:03 2010 +0200 Added debug* to .gitignore. commit 73a85720b45b5f7d02bd8e205b45936d58055ed1 Author: Frederik Heber Date: Fri Aug 27 11:08:51 2010 +0200 FIX: some getter functions (name, id, formula) in class molecule were not const. commit c6653745c7e2c1a9d5510ee8ec11e0b97d5951ef Author: Frederik Heber Date: Fri Aug 27 11:30:34 2010 +0200 FIX: changed minimal bondddistance threshold to 0.1, as otherwise molecular hydrogen is not scanned. - introduced MAX_LINKEDCELLNODES in class LinkedCell as an upper bound for the number of cells allocated. commit 10fa1d73391bc70c0607c7e764f5977ce65ff276 Author: Frederik Heber Date: Thu Aug 26 23:36:28 2010 +0200 DOCU: Updated Action Howto to contain the new macro framework. commit 966e12d8a822176e4558e3229d5f45d6231cc1c0 Author: Frederik Heber Date: Thu Aug 26 23:07:17 2010 +0200 Removed the conversion script files again. They have been added to have them in the repo just in case ... commit 1fd67574a5cc6c07a5638d5d343eae3b6bbdb9bf Author: Frederik Heber Date: Thu Aug 26 23:05:34 2010 +0200 All Actions are converted to the new macro framework. - included all three values that have been used to create or convert the files - createdef.sh - createCpp.sh - createHeader.sh commit 53d01c162db75173725d553f4f149598163822b5 Author: Frederik Heber Date: Thu Aug 26 20:59:34 2010 +0200 Renamed dir Actions/CmdAction -> Actions/CommandAction, renamed class CommandLine... -> Command... - this is necessary to get the naming scheme consistent. commit 8bb05ec5f3d1431cfd3d423bae88f557686697ef Author: Frederik Heber Date: Thu Aug 26 15:27:09 2010 +0200 AtomAddAction converted to use macro framework. - State generation is working. commit 72f6112db6cf5a1c617c8ce97530a68134b38d76 Author: Frederik Heber Date: Thu Aug 26 15:26:15 2010 +0200 Added set/queryCurrentValue for BoxVector and Dialog::quer<> specialization. - uses queryVector but with "true" instead of "false". commit e3e6e24ee59391a5a3d54edddf8e9a8a6c0e1b3e Author: Frederik Heber Date: Thu Aug 26 15:24:45 2010 +0200 Added BoxVector class. BoxVector is simply a Vector with a different class name. This is needed to discern in a template between (Box)Vectors that adhere to the boundary conditions of the box and such (normal) Vectors that don't. commit b4fa106066497a55bc2e47cdbd46bf7f293eaf34 Author: Frederik Heber Date: Thu Aug 26 15:23:21 2010 +0200 Extended action generating macro framework to create specialized ActionState, too. - types, tokens, references -> param... - new statetypes, statereferences that have to be defined for additional variables in the state commit 9ee38b1c3b23a38c779c8e4ad098fe0677a3a5b7 Author: Frederik Heber Date: Wed Aug 25 19:20:37 2010 +0200 Extended macro framework. Extensions: - all central definitions reside in .def files - This if file is necessary because we need the definitions at two places: hpp and cpp - And as we always use the same define names, we have to undefine them at the end of both (otherwise we get compiler warnings and are prone to dumb mistakes of forgotten defines seeming present) - the .hpp is just a very tiny header, that should be possible to batch- construct inside Makefile as well - .cpp includes some Action_...hpp files and implements the function For later (i.e. when ActionRegistry becomes prototype copier) - instead of waiting for clone(), for now we simply call the prototype. - in the action command we must not yet prefix paramreferences with "params." Changes: - Dialog::query<> is a template which is specialized for every present query...() function. We need it to automatize fillDialog() - all AnalysisAction's are now converted, i.e. framework is functional with parameters and queries (MolecularVolume had none). commit 0b2ce98def2d6ab9548ba5ac25acbb2ab5bc233c Author: Frederik Heber Date: Wed Aug 25 15:22:58 2010 +0200 Implemented macros for automatically generating repetitive stuff around Actions. The idea is that only the following items have to be provided for by the user - parameters (i.e. for each the following tupel: type, token and reference) - perform...(), ...Undo(), ... Therefore, we have three new files: - Action_impl_header.hpp: Is for the declarations in the header - Action_impl_pre.hpp: Is before definition of functions - Action_impl_post.hpp: is after definition of functions (cleanup) Changes: - MolecularVolumeAction() has already been refactored accordingly. - new struct ActionParameters, alike to ActionState, to be specialized for each Action's parameters - new function Action::getParametersfromValueStorage() handles retrieval of parameters from ValueStorage. commit 9c1c89d06cf8e6779213c5c5181524247fd05e85 Author: Frederik Heber Date: Thu Aug 26 15:28:45 2010 +0200 FIX: all ...:getHomogeneousPointsOnSurface() now have size_t instead of int parameter. commit 8fd9346e5c090b879b93dad5c7820919964e4a47 Author: Tillmann Crueger Date: Thu Aug 26 14:46:06 2010 +0200 Removed template structure from molecule class commit 32ea5695f81eb947c7da924c8808ff91acc4f552 Author: Tillmann Crueger Date: Thu Aug 26 14:44:19 2010 +0200 Removed last occurences of molecule::SetIndexedArrayForEachAtomTo() commit e8a21f0608f0217a98fd8f5da54cc9e8b703bcc1 Author: Tillmann Crueger Date: Thu Aug 26 14:20:17 2010 +0200 Added an atom::getNr() method to atom class commit 882a8ac67e05a95dfd3b4c1ee07141dbadd4273d Author: Tillmann Crueger Date: Thu Aug 26 13:02:41 2010 +0200 made the atom::OutputTrajectories() method use an enumeration of elements instead of lookup table commit 487ebb366f1058c4cbfa1b8d7c39068ab4217e29 Author: Tillmann Crueger Date: Thu Aug 26 12:46:37 2010 +0200 Removed old debug output from atom.cpp commit aed5582c7a2b19b1798cf507a34e01d1bf8d4e05 Author: Tillmann Crueger Date: Thu Aug 26 12:37:47 2010 +0200 Removed old debug message from molecule::Output() commit e5f64de0ed94021d6e3e72fb7d6109348fa75860 Author: Tillmann Crueger Date: Thu Aug 26 12:35:39 2010 +0200 Added a method that allows comparison of atoms by their atomic number commit 9e78135793860f7ecac4b92852424b3775909010 Author: Tillmann Crueger Date: Thu Aug 26 11:55:05 2010 +0200 Removed ActOnAllAtoms from config.cpp commit 0dc86e2c7b7adc23848ded2fea283fd7d8386a3a Author: Tillmann Crueger Date: Thu Aug 26 11:34:49 2010 +0200 Removed unused AtomNo parameter in atom::OutputMPQCLine() commit 5cd333c61ec493a027760439b5ef6ff498115676 Author: Tillmann Crueger Date: Wed Aug 25 18:12:17 2010 +0200 Replaced call to Vector::Scale() with operator notation commit 00ef5cd5635babd648ea219db1abf0b5b6f22e03 Author: Tillmann Crueger Date: Wed Aug 25 18:10:54 2010 +0200 Removed several calls to molecule::ActOnEachAtom() from molecule_graph.cpp - Added a function to initialize the DFS inside the molecule commit 14b65e7d50e8fe7d7dad07de49e7a29035639c88 Author: Tillmann Crueger Date: Wed Aug 25 18:10:02 2010 +0200 Added a method to reset the graphNr of an atom commit a3948b7a65055d6d627fa462a6f493b6341f029e Author: Tillmann Crueger Date: Wed Aug 25 17:32:29 2010 +0200 Removed unused TrajectoryParticle::CorrectVelocity() method commit 9b355f18d097539505bf3a7f3e18c7a604b51b6f Author: Tillmann Crueger Date: Wed Aug 25 16:03:45 2010 +0200 Removed unused TrajectoryParticle::SumUpKineticEnergy() method commit 259b2b69cc967f3848c060bc49cb3cdd604ae961 Author: Tillmann Crueger Date: Wed Aug 25 16:01:19 2010 +0200 Made the molecule::VerletForceIntegration() use the atomSetMixin to correct velocities commit 5ac6903c7db612b466759cd7646416f2c4289a2d Author: Tillmann Crueger Date: Wed Aug 25 16:00:33 2010 +0200 Added a method to the AtomSetMixin that allows adding a velocity to all velocity elements of the trajectory of a set of atoms commit 1f83378713b1bfbb4e64a67186df84e3524e8d19 Author: Tillmann Crueger Date: Wed Aug 25 15:41:56 2010 +0200 Moved AtomInfo::getMass() method to class atom to avoid problems with virtual inheritance commit 5e99bcb3afe6825d60ef5e1cc3ae6144178d1aa8 Author: Tillmann Crueger Date: Wed Aug 25 15:22:11 2010 +0200 Added a method to the AtomSetMixin that allows calculating the total moment of arbitrary sets of Atoms commit e95a59cf14c62c478df7c29aa6448bf917ea615d Author: Tillmann Crueger Date: Wed Aug 25 15:06:42 2010 +0200 Added a method that allows querying the momentum of a particle commit cddda78467e08dd61afb0ff7c34c05de04e1e19b Author: Tillmann Crueger Date: Wed Aug 25 15:02:26 2010 +0200 Added a method to the AtomSetMixin that allows calculating the total mass of an arbitrary set of Atoms commit 9184bdb6dcfab3be594b5b39d67115f0a8522717 Author: Tillmann Crueger Date: Wed Aug 25 14:58:02 2010 +0200 Added a method that allows querying the mass of an atom directly - allows replacement of atom->getType()->getMass() with simpler atom->getMass() commit 2be37bebc2369db6d04a0f65494abf633b1fceea Author: Tillmann Crueger Date: Wed Aug 25 14:33:00 2010 +0200 Removed some more calls to molecule::ActOnAllAtoms() commit 51c3e4347f7ed1dc3bd82d6b45eeaf3ebfbf0e7c Merge: 14c57a9 d17f3dc Author: Tillmann Crueger Date: Wed Aug 25 14:25:28 2010 +0200 Merge branch 'stable' into StructureRefactoring Conflicts: src/atom_trajectoryparticle.cpp commit 14c57a9b8ce2c94b3ca4d4d59b36bd5aa57cabf1 Author: Tillmann Crueger Date: Wed Aug 25 14:04:11 2010 +0200 Made all parts of the programm use the new thermostat structure commit 8d1dd4fcc7d507ccaf7345578b875e0a40064ac1 Author: Tillmann Crueger Date: Wed Aug 25 12:42:21 2010 +0200 Removed obsolete load methods from config class commit 3e4162451cda2418307cb0c93ebf19ec43a6d0cf Author: Tillmann Crueger Date: Wed Aug 25 12:16:11 2010 +0200 Added several default constructors with some default values to Thermostats commit c0c650847435dcb508e3ddcaccc0d96a196e2fbd Author: Tillmann Crueger Date: Wed Aug 25 11:24:25 2010 +0200 Added structure that allows construction of thermostats from parameters in a configfile commit 0b882abd64ff741eb96c26e6fa3ec61251b77ca4 Author: Tillmann Crueger Date: Wed Aug 25 10:57:44 2010 +0200 Added Inheritance structure to ThermostatTraits commit 579a8164cf780e621cb4e727d195e84fdcd5698a Author: Tillmann Crueger Date: Fri Aug 20 15:54:23 2010 +0200 Added a basic self-descriptive structure for Thermostats commit 194649564d0311bec3d5d03acaa519a7a24a5611 Author: Tillmann Crueger Date: Fri Aug 20 13:43:39 2010 +0200 Added class structure to represent thermostats commit d17f3dc57329f8bf69e73f21166b7985cb4d1a79 Author: Frederik Heber Date: Thu Aug 19 18:56:30 2010 +0200 FIX: Using getSuitableShortForm() in TextWindow::TextWindow() for all triggers. - also reserving q and s by initially pytting them into the list. commit 9c7e0f93616747e1a524ff1bc6b6beca81cda730 Author: Frederik Heber Date: Thu Aug 19 18:55:17 2010 +0200 deleted function MoleculeListClass::flipChosen() and setMoleculeActiveAction from TextMenu. commit 994713afde7cd130d68e8417cfee8669e3d96182 Merge: 4b76502 8006eed Author: Frederik Heber Date: Thu Aug 19 18:59:10 2010 +0200 Merge branch 'FixRedoAction_isActive' into stable commit 8006eed2788de714f5d76c85a5cb7d0c5891ef58 Author: Frederik Heber Date: Thu Aug 19 18:58:24 2010 +0200 FIX: "Redo" message was in wrong function. - in ActionHistory::RedoAction::isActive() instead of ActionHistory::RedoAction::performCall(). commit 4b76502568e217ff079156bad174952770f35084 Merge: 80cecb5 c6081e5 Author: Frederik Heber Date: Thu Aug 19 18:27:32 2010 +0200 Merge branch 'FixTextUI_undo' into stable commit c6081e5308fdedcfd6d64ecc65f597a8c8fbd17e Author: Frederik Heber Date: Thu Aug 19 18:26:53 2010 +0200 BUGFIX: TextWindow::TextWindow() has Undo/Redo names still with capital letters. commit 80cecb59e1dd972f90cbd31cd301f1e3aaae1ce7 Author: Frederik Heber Date: Thu Aug 19 17:21:30 2010 +0200 MEMFIX: Matrix::transformToEigenbasis() did not free evec and eval. commit 6543946e6fc68bde4047505df9233ee229b408fc Author: Frederik Heber Date: Thu Aug 19 17:09:15 2010 +0200 MEMFIX: World::numMoleculeDefragSkips and World::lastMoleculePoolSize were not set in constructor. commit 146cff20ef08f9e72090351efc803d678278fe81 Author: Frederik Heber Date: Thu Aug 19 15:32:48 2010 +0200 FIX: include missing in some files. commit 73c5ca926af8e466cdb3a46c2f6677235fe603f5 Author: Frederik Heber Date: Thu Aug 19 15:28:53 2010 +0200 FIX: gsl/gsl_inline.h not needed in atom_trajectoryparticle.hpp. commit 9f99b38262d85a2d8917cb47c5b52d88465624d7 Author: Frederik Heber Date: Thu Aug 19 10:54:01 2010 +0200 MEMFIX: periodentafel::LoadElementsDatabase() leaked memory. - if element was replaced by one from parsedElements, the content was copied, but the allocated element in the map not deleted. commit 2a745784af224f1a124be7ae6bdcf0a3b38bb95d Author: Frederik Heber Date: Thu Aug 19 10:52:42 2010 +0200 MEMFIX: operator*(Matrix,Vector) leaked memory. - a gsl_vector was callocated twice as such and inside a VectorContent. commit 83f17610150f59038d04ff05a300df1d76c5df81 Author: Frederik Heber Date: Tue Aug 17 19:21:25 2010 +0200 Made all member variables of class element private, added accessor functions and periodentafel is friend. commit 1ee380f25018990c930f81125ef904282f7f3887 Author: Frederik Heber Date: Wed Aug 18 18:11:16 2010 +0200 Replaced autogen.sh with TREMOLO-derivate bootstrap shell. - bootstrap keeps ChangeLog up to date. - this allows for consistent docu generation on jupiter for TRAC. commit 2f6f5103d9ed45cb9dee4880b5a85503d4bfb2ae Author: Frederik Heber Date: Wed Aug 18 18:10:07 2010 +0200 Enabled XML file of valgrind errors, can be viewed with memcheckview. commit ea2c76cb353581745939e7353cd8282849c7f9d3 Author: Tillmann Crueger Date: Wed Aug 18 18:09:47 2010 +0200 Removed definition of unused method in ThermostatContainer class commit bc8a4159f58ff2993d942c9ae0a4eb6b9635c012 Author: Tillmann Crueger Date: Wed Aug 18 16:10:33 2010 +0200 Added a warning to keep people from using VectorContent directly commit c743f8a315d7845beb1acf951a15abd447c15e55 Author: Tillmann Crueger Date: Wed Aug 18 16:09:58 2010 +0200 Removed some more invocations of ActOnAllAtoms commit 7329c3712616286c539153409d0ece7591cdea9f Author: Tillmann Crueger Date: Wed Aug 18 15:34:33 2010 +0200 Removed obsolete method for summing up temperature commit 90040282fe2db00e50217b4b4d05068552b8077e Author: Tillmann Crueger Date: Wed Aug 18 15:30:26 2010 +0200 Made the molecule::OutputTemperatureFromTrajectories() method use the totalTemperature method provided by the AtomSet commit ddc85b155533cc7cf648e5fbccea698f7935b927 Author: Tillmann Crueger Date: Wed Aug 18 15:19:14 2010 +0200 Added a method that allows calculation of the total temperature of a set of atoms at a given time step commit 4900387e8dbe2570987662bf273f57b95ab6acc3 Author: Frederik Heber Date: Tue Aug 17 16:14:34 2010 +0200 added --with-valgrind switch to configure script. - if given, we use valgrind in the testsuite call and fail when valgrind reports errors or leaking memory. - is off by default. - test_all.sh: - CXXFLAGS needs to be stated after configure such that configure can store the set value (also in its log) - always compiles with -Wall - in case of -g3 we use --with-valgrind to enable valgrinding of testsuite - extended function configure() to three arguments, to allow for recognizing "-g3" commit 293afd2518c85a25e2ebc908251dabe09d635582 Merge: 5f8660a f304905 Author: Frederik Heber Date: Tue Aug 17 15:34:08 2010 +0200 Merge remote branch 'wildenhues/stable' into stable commit 5f8660ad2bcd7c4039fa6d9f537658dacdc0b1d4 Author: Frederik Heber Date: Tue Aug 17 15:17:22 2010 +0200 Changed PACKAGENAME and version. - rename ESPACKVersion in src/version.h -> MOLECUILDERVERSION - changed PACKAGENAME to MoleCuilder - FIX: changed version number in configure.ac to 1.0.0 commit bcf653d9a0b46f52fc007e0fbb11d60cc4aa49a2 Author: Frederik Heber Date: Tue Aug 17 15:14:22 2010 +0200 Added copyright note to each .cpp file and an extensive one to builder.cpp. commit 9cd8071f2b87fbfff8c3eb03ad49e2c1ceda7b74 Author: Frederik Heber Date: Tue Aug 17 14:50:34 2010 +0200 FIX: Other authors were missing again in AUTHORS (thx Ralf!). - probably went missing when Repo was splitt off from ESPACK? commit 49a1362bb32b57e917e16bb423d8f5a7ec95ac2f Merge: a19d73e 8e463e3 Author: Frederik Heber Date: Tue Aug 17 14:43:46 2010 +0200 Merge branch 'FixMerge_TestSHBranch' into stable commit 8e463e3743873aa2485a58f66cc88fde13f11d11 Author: Frederik Heber Date: Tue Aug 17 14:43:04 2010 +0200 FIX: COPYING AND README still had conflict markers (thx Ralf!). commit f304905bdd65ac1553aaccf2a94ac5910ded50b5 Author: Ralf Wildenhues Date: Tue Aug 17 14:28:29 2010 +0200 Enable colored testsuite output if available. * configure.ac: Enable the Automake option 'color-tests'. Require version >= 1.11, needed for color-tests and parallel-tests, for a sensible error message from older versions. * tests/regression/testsuite.at: Use AT_COLOR_TESTS if available. commit a19d73e6949af32bd9194e482beadb7786ba5775 Author: Frederik Heber Date: Fri Aug 13 18:42:47 2010 +0200 FIX: GetCenterofCircumcircle() has check for division by zero. commit bb440860e72c18e7341f20fc84c9321267e02e6a Author: Frederik Heber Date: Fri Aug 13 18:18:01 2010 +0200 BUGFIX: Removed adding of parsed atoms in LoadXyzAction. - a molecule is created and added already in XyzParser::load(). - this caused the id of a newly parsed in xyz file to be 2 instead of 1 and the creation of an empty molecule. commit 0adac17286dfddc176e65a475257636490346e05 Author: Frederik Heber Date: Fri Aug 13 18:16:37 2010 +0200 Added "periodic" as optional argument to TranslateAction. - entails execution of Box::WrapPeriodically() if true. - BUGFIX: friend declaration had wrong signature. commit 5f1d5b842f0b34e83a8b8253e98b4bb0defe850e Author: Frederik Heber Date: Fri Aug 13 16:08:39 2010 +0200 BUGFIX: fixed undefined ref to ObservedContainer<...>::begin()/end()/count()/... at -O1 - test_all.sh did not fail compilation at -O1 (though working fine at -g3, i.e. -O0). - Seems like a compiler bug (optimization makes some assumption we do not fulfill, ...) - FIX: wrote macro to explicitly instantiate all member functions of ObservedContainer, called CONSTRUCT_OBSERVEDCONTAINER(name). - Is used by the world for AtomSet and MoleculeSet - had to introduce typedefs for the STL-Sets as "set" is parsed as two arguments by the preprocessor ... d'oh. commit ae959a63102374911f70ae2030155c2100ffa747 Author: Frederik Heber Date: Thu Aug 12 20:15:33 2010 +0200 element::group, period, block converted from char[] to std::string. - came up as test_all.sh showed strncpy to as undefined reference on -O1. commit faa1c97ea48c451ad4f2217cd2d40c7d8a22509e Author: Frederik Heber Date: Thu Aug 12 18:32:32 2010 +0200 BUGFIX: SubgraphDissectionAction() does not copy system anymore, has Undo/Redo. - This fixes ticket #88. - Added Undo/Redo, needed World::changeMoleculeId() for that - BUGFIX: performCall() let DepthFirstSearchAnalysis() copy atoms and copied the molecules once more. - BUGFIX: performCall() did not reset fathers of copied atoms to point to themselves (BUG with redo arose). - TEST: Added Undo/Redo part to Graph/2 (subgraph dissection). - TESTFIX: Analysis/4 uses --unselect-molecule-by-formula and id of this molecule is 1 (as system is not copied anymore). commit a7a087b4161e29ab90bf567b4c104f88cc4a1336 Author: Frederik Heber Date: Thu Aug 12 18:31:02 2010 +0200 new function World::changeMoleculeId(). - copied from changeAtomId() - needed for undoing changes to the set of molecules in the World. commit 51769f1ad434c697ff72558611b3163dbe892aa8 Author: Frederik Heber Date: Thu Aug 12 17:08:47 2010 +0200 Added (un)select-molecule-by-formula/..-atom-by-element actions.. commit 60896f551f7f5652f208883f10b4f13ef6c1383e Author: Frederik Heber Date: Thu Aug 12 16:24:42 2010 +0200 BUGFIX: molecule::Add...Atom() and molecule::RemoveAtom() called formula::operator+ effectively twice. - formula::operator+/- is called by insert() and erase() only. commit fa7989d779d06bef120bc5ceb8a80825582a3e66 Author: Frederik Heber Date: Thu Aug 12 16:23:34 2010 +0200 FIX: World::destroyMolecule(mol *) - assert that pointer is not NULL. - added docu to some atom member functions. commit 2b7d1b4a8971f8404e446082f8f129a126eb6922 Author: Frederik Heber Date: Thu Jul 29 14:07:40 2010 +0200 Merged MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() into FragmenationSubgraphDissectionAction. - also rewrote the function a bit: - no more copying of atoms - we just take the molecule out of the MoleculeLeafs - molecule that contains all atoms is destroyed including all original atoms (they are copied by DFS). commit 31fb1df09428e7671debb5867061ee049cbbd546 Author: Frederik Heber Date: Wed Aug 11 16:58:43 2010 +0200 (un)select-atoms-inside-cuboid: cuboid may be rotated. - Matrix::rotate() sets contents to arbitrary rotation matrix. - BUGFIX: Matrix::transpose() was working only for symmetric matrices. - TEST: unit test cases for rotation() and transpose(). - new options "angle-x", "angle-y", "angle-z" - (un)select-atoms-inside-cuboid: have these as optional arguments. commit 03c902cad860797759acc84bc47e60d6ebb414ca Author: Frederik Heber Date: Wed Aug 11 16:04:15 2010 +0200 Actions may now have optional parameters. - an additional parameter in ValueStorage::queryCurrentValue() states whether value is optional or not in which case no assertion is thrown but wrong returned - new function MapOfActions::isCurrentValuePresent() commit 13e3c3f109157595d19a92de57a74cb60bb23ce9 Merge: b8d15ba 6b5657d Author: Frederik Heber Date: Wed Aug 11 13:47:46 2010 +0200 Merge branch 'SmallFixes' into stable Conflicts: src/Shapes/BaseShapes.cpp - include Helpers/Assert.hpp has been introduced, conflicted in position with new MemDebug.hpp commit b8d15ba4d785c75f9e4833a2ac21ff18d4f73608 Merge: fa18306 23badec Author: Frederik Heber Date: Wed Aug 11 13:45:57 2010 +0200 Merge branch 'HomogeneousPointsOnSurface' into stable commit 6b5657d58a1afe011e7485a3153286cdf3aa899c Author: Frederik Heber Date: Wed Aug 11 12:01:24 2010 +0200 Decoupled typedef for some STL maps used in boundary.cpp from those used in molecule_dynamics.cpp - change in maps - Distance... are now called TesselPointDistance... - now work on TesselPoint* not atom* (conversion work seamlessly). - have been shifted over to BoundaryMaps.hpp - boundary.cpp just includes BoundaryMaps.hpp commit b0b0867ddbb84cdb7620f200173863edebd89447 Author: Frederik Heber Date: Wed Aug 11 11:41:43 2010 +0200 BUGFIX: Fixed unity target. - MemDebug.cpp has to appear before any cpp file that includes MemDebug.hpp - Helpers/MemDebug.cpp is now first to be given to unity.cpp, is excluded in Helpers/Makefile.am commit 26cf178241bc1745d1cd55a41d90128034ce1112 Author: Frederik Heber Date: Wed Aug 11 11:41:20 2010 +0200 Added Formula WidgetItem to QTWorldView. - int are converted to QString by QString::number() - new entry FORMULA in QTWorldView::COLUMNTYPES and added in constructor out of molecule::formula. commit 81a9bcd340bc215f75c1bc0683fbff0d1fd3437d Author: Frederik Heber Date: Wed Aug 11 11:41:00 2010 +0200 BUGFIX: fixed initializer list sequence of MoleculeListClass. commit ff58f19bf2a221d3e7a0f50bb78a6a88b348e87f Author: Frederik Heber Date: Wed Aug 11 11:28:42 2010 +0200 BUGFIX: fixed initializer list sequence of LinkedCell. commit bf38179e7a1590020bad970c4931116d7d7e9bbb Author: Frederik Heber Date: Wed Aug 11 11:27:47 2010 +0200 Added ifdef HAVE_CONFIG and config.h include to each and every cpp file. - is now topmost in front of MemDebug.hpp (and any other). commit bbbad57a15d672125aae51443910d6e2cde8123d Author: Frederik Heber Date: Wed Aug 11 10:36:24 2010 +0200 Added MemDebug.hpp to each and every .cpp file (were it was still missing). - is topmost include and separated by a newline from rest. - NOTE: QT includes have to appear before MemDebug.hpp due to strange magic happening therein. commit 23badec4d9e3dbd58b27a7436536bc0a426b576a Author: Frederik Heber Date: Wed Aug 11 10:19:33 2010 +0200 Actually, AndShape_impl::getHomogeneousPointsOnSurface() was not non-trivial at all ... - just and simply the opposite to OrShape_impl ... commit fa18306cccc4f64d475a7deb6a244ce56bae8b61 Merge: 95e6b13 c5186e9 Author: Frederik Heber Date: Tue Aug 10 21:26:03 2010 +0200 Merge branch 'HomogeneousPointsOnSurface' into stable commit 95e6b132cb0973feda4ff43eba6ed2a7366ca78d Merge: 7aa3cf7 61951bf Author: Frederik Heber Date: Tue Aug 10 21:25:28 2010 +0200 Merge branch 'SmallFixes' into stable commit c5186e909d411ff3c5b6bc38edd607738818eab0 Author: Frederik Heber Date: Tue Aug 10 21:21:52 2010 +0200 Added getHomogenousPointsOnSurface() function to Shapes. - missing is so far: AndShape_impl which is not trivial, as surface is inside of both probably (ASSERT(false,...) present). - missing also (although trivial): Cuboid_impl (ASSERT(false,...) present). commit 0d02fbf6b0433481fd17dc075f5b57ba0c694fe6 Author: Frederik Heber Date: Tue Aug 10 21:20:13 2010 +0200 BUGFIX: Cuboid_impl had faulty isInside() and wrongly returned Sphere_impl(). - Cuboid_impl::isInside() did not check point[i]>=0 - Cuboid() did not return Cuboid_impl() commit 61951bf7003a204e8280efea5cd01f49ec7e6e94 Author: Frederik Heber Date: Tue Aug 10 16:56:27 2010 +0200 Removed molecule merging functions from MoleculeListClass. - was only used in config::SaveConfig() commit 1883f997b2f0a47488e06c9f7e2d810e23e925a3 Author: Frederik Heber Date: Tue Aug 10 16:47:43 2010 +0200 Removed molecule::Center. - QTWorldView now more has entry "Center". - Center..() all act on the atoms, not on molecule::Center. commit 8eca62b52cf508d9f13ee217c9e418d2fae4ed6c Author: Frederik Heber Date: Tue Aug 10 16:27:11 2010 +0200 Removed Legacy from src. commit fc7504ee394871cd7925b1895a13402a2940f34e Author: Frederik Heber Date: Tue Aug 10 15:04:18 2010 +0200 FIX: initializer list of QTStatusBar was in wrong order. commit 4e6d749689378ad453c95f2780d751098f31e5b5 Author: Frederik Heber Date: Tue Aug 10 14:47:22 2010 +0200 Removed output of headers in periodentafel::LoadElementsDatabase(). commit 7aa3cf76e35112b1c90a348e736a82000423cfa3 Author: Frederik Heber Date: Tue Aug 10 14:44:56 2010 +0200 Added undo/redo test for Standard_options/7 (SetDefaultNameAction). commit 7e37a3d8ccc143139396a0dbee575c20c7754340 Author: Frederik Heber Date: Tue Aug 10 14:40:42 2010 +0200 Added undo/redo test to Standard_configuration/6 (FastParsingAction). commit 92c52fdd0dbb51a766227197634f4c32f2a65ffa Author: Frederik Heber Date: Tue Aug 10 14:34:10 2010 +0200 Added undo/redo test to standard_options/1 (VerboseAction). - added Logger::getVerbosity(), errorLogger::getVerbosity() and getVerbosity() in Log.[ch]pp. - VerboseAction is more verbose :) about undo/redo. commit 7847082d0a6a540ca0c1c81ab0fc49d2d040f7fa Author: Frederik Heber Date: Tue Aug 10 14:09:07 2010 +0200 Added undo/redo test to Simple_configuration/8 (remove sphere/cuboid of atoms). commit ea283032ddd46712979979db56184f81e207ffd4 Author: Frederik Heber Date: Tue Aug 10 14:00:51 2010 +0200 Added Undo/Redo capability to AddAction. - added test for undo/redo to Simple_configuration/3. commit f8456cc5b864ea00415d64f971dce5a982883a58 Author: Frederik Heber Date: Tue Aug 10 13:44:37 2010 +0200 Added Undo/Redo capability to ChangeElement. - added test for undo/redo to Simple_configuration/4. commit e41c48e834f26d3742f334149b34497a3b8c486c Author: Frederik Heber Date: Tue Aug 10 13:29:23 2010 +0200 RemoveAction has Undo/Redo capability. - FIX: atom::getMolecule() is now const member function - new class AtomicInfo that stores essential info contained in atom. - TESTFIX: had to pre/replace test.conf due to wrong MaxMinStopSteps, PsiNumbers in original file ... (this never occured because we compared against this in post/) - added test for undo/redo to Simple_configuration/5 commit 353e829674413f3274b6e25f31a255a19024aa77 Merge: b5c53d0 1cc87ed Author: Frederik Heber Date: Mon Aug 9 20:34:36 2010 +0200 Merge branch 'AddMoreActions' into stable commit b5c53d0007611f38495bf2e4a8c7348258cf1e7e Merge: 4584471 e588312 Author: Frederik Heber Date: Mon Aug 9 20:33:29 2010 +0200 Merge branch 'StructureRefactoring' into stable Conflicts: src/Actions/AtomAction/AddAction.cpp src/Actions/AtomAction/ChangeElementAction.cpp src/Parser/XyzParser.cpp src/analysis_correlation.cpp src/atom.cpp src/config.cpp src/molecule.cpp - AtomInfo::element were privatized in stable and element::symbol, ::name in StructureRefactoring (overlapped in various lines). commit 1cc87ed369fad8326bd48fd53bf9078b19efe5a9 Author: Frederik Heber Date: Mon Aug 9 19:11:50 2010 +0200 Added select-atoms-inside-sphere/cuboid and unselect-.. - new selections to (un)select atoms inside a BasicShape Sphere or Cuboid. - BUGFIX: (Not)AllAtomsInsideCuboid did not query for Vector but double. - TEST: Simple_configuration/8 - does not use RemoveSphereOfAtoms anymore - uses select-atoms-inside-... - checks both sphere and cuboid, invert and normal removel - also checks recombination of both to yield original configuration. - deleted RemoveSphereOfAtomsAction.[ch]pp commit 7a7ad1df3587efd882b5162f3593677b96ad9590 Author: Frederik Heber Date: Mon Aug 9 18:22:34 2010 +0200 Added AtomShapeDescriptor. commit 446bc1c64fd03e02bb239a7216a6031de224f0e6 Author: Frederik Heber Date: Mon Aug 9 17:53:13 2010 +0200 Added Undo/Redo actions to MapOfActions. - ActionHistory:UndoAction and ::RedoAction now have ::NAME[], "undo", "redo" - added as command line arguments - TESTFIX: added translation of atom test (Simple_configuration/9) - TESTFIX: added undo/redo for this translation test From now on, undo/redo should be tested within the testsuite by adding under the same test case block another one with additional "--undo" and "--undo --redo" added to check for correct implementation of ::performUndo() and ::performRedo() as well. commit c89fb414440748d449fe711ececeddc654c9a71f Author: Frederik Heber Date: Mon Aug 9 17:13:35 2010 +0200 FIX: Some Actions still accessed MapOfActions instead of ValueStorage. commit c7f5c2473338fbfae12f3ebc925f7aa3be9b8efe Author: Frederik Heber Date: Mon Aug 9 17:09:00 2010 +0200 Help and Version Actions should not be undoned (ShouldUndo returns false now). commit 22c44bfbfc88dd812e7266c337d681697971b4bd Author: Frederik Heber Date: Mon Aug 9 17:03:05 2010 +0200 Changed RotateAroundOriginByAngleAction from acting on molecules to acting on selected atoms. commit 34c338bb9488bd56607ec1c6e8571df32ba115d2 Author: Frederik Heber Date: Mon Aug 9 16:13:27 2010 +0200 Changed TranslateAction from acting on molecules to acting on selected atoms. - removed periodic from TranslateAction, this will be replaced by another action (enforce-boundary-conditions or something like that) commit 75a80fa17f1d93225b82f8ef166306e615a37e33 Author: Frederik Heber Date: Mon Aug 9 15:19:58 2010 +0200 New selection: unselect-molecule-of-atom. commit 381c5fe8fd9ca93694a21da8584771be55a797fc Author: Frederik Heber Date: Mon Aug 9 15:15:15 2010 +0200 New selection: unselect-molecules-atoms. commit 481e9213138a06f3024b941f985d8988719fa579 Author: Frederik Heber Date: Mon Aug 9 15:10:33 2010 +0200 New selection: select-molecule-of-atom. commit 770287d80fd62a4701803c0bc5a84438f8d5043b Author: Frederik Heber Date: Mon Aug 9 14:57:20 2010 +0200 new selection: select-molecules-atoms. commit 2218d94da90f7417d65be48472c11c4a30562458 Author: Frederik Heber Date: Mon Aug 9 14:49:19 2010 +0200 New selection: clear-molecule-selection. commit e212ff44099f167003b8536a5d60337d9b9100be Author: Frederik Heber Date: Mon Aug 9 14:43:36 2010 +0200 New selection: clear-atom-selection. commit 458447148305e8652c9767fbb7d7dd8fe57fbb22 Author: Frederik Heber Date: Sat Aug 7 17:05:07 2010 +0200 Little hack (thanks Ralf!) allows for parallel execution of regression testsuite. - TODO: would be great to actually extract the number of threads from make somehow commit 97b8250638c1abf3f888625d1d3888a08cb06cb2 Author: Frederik Heber Date: Sat Aug 7 16:44:24 2010 +0200 Shortened constructors [Meyers, "Effective C++" item 12] - also rearranged some initialization list (one per line). commit 5b4605879f206787e91bf952de2889919646bf52 Author: Frederik Heber Date: Sat Aug 7 15:59:43 2010 +0200 operator[+-*] return const instance [Meyer, "Effective C++", item 21]. - class Vector had this correct, class Matrix not (also for *=,+=). commit 88b400a534a193491b7a14d803ade4432b9130f5 Author: Frederik Heber Date: Sat Aug 7 15:46:16 2010 +0200 converted #define's to enums, consts and typedefs [Meyers, "Effective C++", item 1]. basic changes: - #define bla 1.3 -> const double bla = 1.3 - #define bla "test" -> const char * const bla = "test - use class specific constants! (HULLEPSILON) const int Class::bla = 1.3; (in .cpp) static const int bla; (in .hpp inside class private section) - "enum hack": #define bla 5 -> enum { bla = 5 }; - if const int bla=5; impossible - e.g. necessary if constant is used in array declaration (int blabla[bla];) details: - new file defs.cpp where const double reside in and are referenced by extern "C" const double - joiner.cpp: main() had to be changed due to concatenation of two #define possible, of two const char * not - class specific constants: HULLEPSILON, BONDTHRESHOLD, SPHERERADIUS - extended GetPathLengthonCircumCircle to additional parameter HULLEPSILON commit 44de80aad4e4cc3c602e36897dda27b31e4eacfc Author: Frederik Heber Date: Fri Aug 6 17:15:49 2010 +0200 Added blurred INS logo in the background of the TRAC logo. commit 25b9d246a82b6caaece7f1c6156c22c010172cb4 Author: Frederik Heber Date: Fri Aug 6 14:34:05 2010 +0200 Removed some unused variables. commit 2d292d0f4846ba3244d8f5f54b475dd72cd28fe4 Author: Frederik Heber Date: Fri Aug 6 14:26:27 2010 +0200 FIX: Removed unnecessary "Process.hpp" included from some normal derived Actions. commit 8f4df1ef77448922e1b977a3e138bcc2a4a4dad0 Merge: 8d6d31e d740776 Author: Frederik Heber Date: Sat Aug 7 14:07:04 2010 +0200 Merge branch 'AtomicPositionEncapsulation' into stable Conflicts: src/Actions/AtomAction/ChangeElementAction.cpp src/Actions/WorldAction/RemoveSphereOfAtomsAction.cpp src/Makefile.am src/UIElements/TextUI/TextDialog.cpp src/analysis_correlation.hpp src/atom.cpp src/atom_atominfo.hpp src/bond.cpp src/boundary.cpp src/molecule_geometry.cpp src/tesselation.cpp src/tesselationhelpers.cpp src/triangleintersectionlist.cpp src/unittests/Makefile.am - fixed #includes due to moves to Helpers and LinearAlgebra - moved VectorInterface.* and vector_ops.* to LinearAlgebra - no more direct access of atom::node, remapped to set/getPosition() - no more direct access to atom::type, remapped to set/getType() (also in atom due to derivation and atominfo::AtomicElement is private not protected). commit 8d6d31e159e6d6b40179835f02717acb3398e53f Merge: 3273649 1bab08d Author: Frederik Heber Date: Fri Aug 6 19:13:53 2010 +0200 Merge branch 'FixTesselationXyzParser' into stable commit 1bab08dd8769615421ff6911352f85a1980b1b2a Author: Frederik Heber Date: Fri Aug 6 19:12:54 2010 +0200 Tesselations now work directly on the xyz file and don't parse them in. - due to changes to XyzParser::load() a new molecule is created (which does not have id 0) anymore. - also, as we don't change the xyz file there is no need to create a config file. commit 3273649ad568fc4313b80bd99826e13471458132 Author: Frederik Heber Date: Fri Aug 6 18:56:59 2010 +0200 Rotate to PAS is fixed. - was marked BROKEN before in test case, is now fixed. - test case is extended to multiple rotated system. - Note that only the alignment to z axis is fixed, there is still a degree of freedom in rotating around the axis. Hence, each rotated initial needs its own final configuration. commit 31db5bec2df65d790b2347935eb2728b268a6a52 Author: Frederik Heber Date: Fri Aug 6 18:49:14 2010 +0200 Added test cases for Actions rotate-origin and rotate-self. commit 90bc51774be4b7f550eb9afe64fe3212c4a8abbc Author: Frederik Heber Date: Fri Aug 6 18:48:21 2010 +0200 FIX: RotateAroundSelfByAngleAction also gets position, using a selected atom is nonsense. - fixed friend signature - fixed state commit 4a06d6f6edff640f888191895deb3c368a27121b Author: Frederik Heber Date: Fri Aug 6 18:45:09 2010 +0200 FIX: friend function of RotateAroundOriginByAngleAction had wrong signature. - also fixed RotateAroundOriginByAngleAction::performCall(): RotationAxis and "done" out of loop. commit e0ba10aefbf9eb54616b612a684311eb6f9bc3e9 Author: Frederik Heber Date: Fri Aug 6 18:43:34 2010 +0200 Added output operator to Line class. commit dddbfeb3a4d92c72574c1adc455880b061dd829b Author: Frederik Heber Date: Fri Aug 6 17:50:00 2010 +0200 FIX: XyzParser::Load() did not create a molecule wherein all atoms were placed. - BUGFIX: atom::setMolecule() invokes mol->AddAtom which again invokes setMolecule ... infinite loop, instead use insert() - ChangeElementAction needs to remove and re-add the atom such that molecule is notified of element change. - this makes later use of the molecule only possible via subgraph dissection. - hence, we create a molecule, set it active and put it into World's deprecated MoleculeListClass. commit e97a44b5119094d977c214dd391137f01d79794c Author: Frederik Heber Date: Fri Aug 6 17:25:38 2010 +0200 Added verbose message on save to all derived FormatParser and ChangeTracker. commit 2204b0a72e99629eca90c7fd007625e223635cbd Author: Frederik Heber Date: Fri Aug 6 17:25:16 2010 +0200 Added Undo/Redo capability to rotate-origin and rotate-self Actions. commit 4bb63cebe2b2dd7978e57bf927ba4d503023a824 Author: Frederik Heber Date: Fri Aug 6 17:24:50 2010 +0200 made molecule::DetermineCenterOfGravity() a const member function. commit e5883128c9b538e00e0039add7baf84f55d413c4 Merge: 822f019 311d688 Author: Tillmann Crueger Date: Fri Aug 6 16:10:26 2010 +0200 Merge branch 'stable' into StructureRefactoring commit 822f019130ed6abc1bd095b4f6652208527de7a9 Author: Tillmann Crueger Date: Fri Aug 6 16:09:12 2010 +0200 Removed obsolete molecule::IsEqualToWithinRange() method commit e5c0a1f2c378f5ba38776b0cbdd720632338e25c Author: Tillmann Crueger Date: Fri Aug 6 16:01:13 2010 +0200 Made the periodentafel return only "const element *" instead of "element * const", to avoid unexpected changes to stored elements - Note: returning "type * const" from a function does not make sense, since the pointer has to be copied anyway (calling convention), so the calling function can just do another copy to get a non const version of the pointer commit eaf4aedf2479140bfa1a55533ac0f0e740d87acb Author: Frederik Heber Date: Fri Aug 6 14:35:12 2010 +0200 Added two new actions. - RotateAroundOriginByAngle: Rotates around a given axis (origin to "position") by an angle. - RotateAroundSelfByAngle: Rotates around axis (CoG to selected atom) by angle. commit 6e5084ba8942d5b07318fb32c642c0078c9dafe5 Author: Frederik Heber Date: Thu Aug 5 16:34:18 2010 +0200 Fixed PrincipalAxisSystemAction. - PrincipalAxisSystemAction:performCall() now has initial parts of former molecule::PrincipalAxisSystem() - RotateToPrincipalAxisSystemAction::performCall () now has former molecule::PrincipalAxisSystem() - call in PrepareClustersinWater() replaced by call to this Action - changes in PrincipalAxisSystemAction/RotateToPrincipalAxisSystemAction: - use Matrix class for InertiaTensor - use Vector class for axis - use Line class for rotation axis commit a439e552b524ad69d77533afc340c392ecf15aab Author: Frederik Heber Date: Thu Aug 5 16:27:34 2010 +0200 New functions vor class Vector and Matrix. Matrix: - transpose() (returning copy and on itself) - zero() (initialize to zero) - transformToEigenbasis() (columns are eigenvectors, return value has eigenvalues) Vector: - GreatestComponent() (yields index of greatest component) - SmallestComponent() (same for smallest) commit 2a76b0d2f8f171ff646f96c33fad3043938bdb23 Author: Tillmann Crueger Date: Fri Aug 6 14:33:59 2010 +0200 Added copy constructor and assignment operator to class element commit 7e3fc94fcde548b6969916aca84f22f11e3403d7 Author: Tillmann Crueger Date: Fri Aug 6 14:21:14 2010 +0200 Made the element class use strings to store name and symbol commit 2fe9719f8a0aa9ecd805749ffe7ff7b10ebcc6fe Author: Tillmann Crueger Date: Fri Aug 6 14:13:51 2010 +0200 Made fields name and symbol of element class private commit ff6a100b82687d82d4c2fef31bdf265072bad599 Author: Tillmann Crueger Date: Fri Aug 6 13:53:30 2010 +0200 Added setter for fields name and symbol of element class commit 592ccdb22c79d58b6ed3521acb70f7f78faab27e Author: Tillmann Crueger Date: Fri Aug 6 13:37:28 2010 +0200 Removed some obsolete fields from element class commit 311d688cceaee3c8edc791df712eb8acd1912436 Author: Frederik Heber Date: Fri Aug 6 11:36:58 2010 +0200 Replaced ostream and iostream includes in header by iosfwd. Note that is explicitly the forward declaration for iostream to speed up compilation (iostream is heavily templated/tepydef'd hence usualy "class ostream;" is not valid) commit d223d5e07c484fa4ef7f54e88e97fa78b5c0b504 Merge: b6da28a 2559719 Author: Frederik Heber Date: Fri Aug 6 11:24:26 2010 +0200 Merge branch 'SharedLibraries' into stable - BUGFIX: MemDebug.cpp in case of no MEMDEBUG defined, iosfwd include was missing. Conflicts: src/Actions/AnalysisAction/PointCorrelationAction.hpp src/Actions/Makefile.am src/Makefile.am src/UIElements/Makefile.am src/unittests/Makefile.am src/unittests/ShapeUnittest.cpp - Mostly took over stuff from branch SharedLibraries as ..LIBS statments in Makefile.ams changed. - target unity always put at very end, added also to Exceptions, LinearAlgebra, Parser - ShapeUnittest lacked changes of files moved to LinearAlgebra commit b6da28aa93e0ef0e0a6bd47a13b2455fbe34caff Merge: 6d587e8 06f4ef6 Author: Frederik Heber Date: Thu Aug 5 22:15:01 2010 +0200 Merge branch 'FixShapeUnittest' into stable commit 6d587e8c4db7b798bb3b5d7a0b1bdf18f8b3ecef Author: Frederik Heber Date: Thu Aug 5 22:07:32 2010 +0200 TEST: Removed heptan from Tesselations testsuite due to instability of results with regards to Delauney degeneracy. commit a881f5b49bdbb93ecd4c8ff5c5d3e58eea5101f6 Merge: 5fbaeb0 f761c4e Author: Frederik Heber Date: Thu Aug 5 22:06:42 2010 +0200 Merge branch 'StructureRefactoring' into stable Conflicts: src/Actions/AnalysisAction/PairCorrelationAction.hpp src/Actions/AnalysisAction/SurfaceCorrelationAction.hpp - due to different ordering of vector, string includes commit f761c4ebcd2d4747f7ad2cc0dfad35b150f76bd0 Merge: ec149d5 7baf4a7 Author: Frederik Heber Date: Thu Aug 5 21:56:22 2010 +0200 Merge branch 'StructureRefactoring' of jupiter:molecuilder into StructureRefactoring commit 255971975c50c64de776d5989f15e9fe00fe9e44 Author: Frederik Heber Date: Thu Aug 5 19:48:17 2010 +0200 Converted libMolecuilder to shared lib via libtool. - joiner and analyzer now also need libMolecuilderLinearAlgebra and ..Exceptions commit b37436fa9715dfb6e1303adf13e96697e9e8306b Author: Frederik Heber Date: Thu Aug 5 21:46:06 2010 +0200 Converted libMolecuilderUI to shared lib via libtool. commit 952f384acb0e9ac4e3de4c2ad9da1e8ceaf2c797 Author: Frederik Heber Date: Thu Aug 5 21:41:21 2010 +0200 created LibMolecuilderHelpers. - is shared - renamed log.[ch]pp -> Log.[ch]pp - renamed verbose.[ch]pp -> Verbose.[ch]pp - renamed info.[ch]pp -> Info.[ch]pp - contains: Assert, MemDebug, Log, logger, errorlogger, Verbose, Info - had to change includes practically everywhere. commit 57f243922d6a515597472d712ff918560df755e2 Author: Frederik Heber Date: Thu Aug 5 21:19:15 2010 +0200 Created libMolecuilderLinearAlgebra. - is shared. - contains the following classes: Line, Plane, Space, Vector, Matrix, gslvector, gslmatrix, linearsystemofequations - had to change include path almost everywhere - change linkin in src/ and src/unittests/Makefile.am commit f4b5b7b506c66a34d10f4528f8da8719ccd423c8 Author: Frederik Heber Date: Thu Aug 5 21:10:07 2010 +0200 Created LibMolecuilderExceptions. - is shared. - contains all Exceptions. commit 06f4ef645cd755820805c9c8357f3bc4975bd8d6 Author: Frederik Heber Date: Thu Aug 5 21:20:18 2010 +0200 BUGFIX: typo included vector.cpp not .hpp as intended. commit 7baf4a755fce74f03900c50aea2f05421b08eac9 Author: Tillmann Crueger Date: Thu Aug 5 18:03:16 2010 +0200 Made the molecule::OutputTrajectoriesXYZ() and molecule::OutputXYZ() use the STL commit 0eea14179ca714a27601bfd4af614290fe11ba9e Author: Tillmann Crueger Date: Thu Aug 5 17:49:25 2010 +0200 Made the molecule::OutputListOfBonds() method use STL algorithms commit 6a86ce181051608f478cba18847ac221130edb5e Author: Frederik Heber Date: Thu Aug 5 16:21:47 2010 +0200 libparser is now a shared library libMolecuilderParser Necessary changes: - libMolecuilderActions now depends on libMolecuilderParser - libparser.a exchanged by libMolecuilderParser-@...@.la - added lib to description in ../molecuilder.pc.in - new Makefile.am in src/Parser commit 8618749ecbb50515e1e0493c477373586170ee2f Author: Frederik Heber Date: Thu Aug 5 17:46:45 2010 +0200 libMolecuilderAction is now a shared lib via libtool. This is all taken from the example available at http://www.openismus.com/documents/linux/building_libraries/building_libraries/building_libraries.shtml. Necessary changes: - ValueStorage is now part of Actions, not of UIElements anymore (which is actually as it should have been right away, only Dialog uses ValueStorage and for all Actions ValueStorage is the simple adapter pattern to MapOfActions needed the relax (compilation) dependencies). - new files: - config/ltmain.sh (scipt for libtool) - libmolecuilder_config.h.in (extra config.h which is copied along with lib to contain how it has been compiled) - molecuilder.pc.in (package config information - BUGFIX: m4/gwqt4.m4 added -L$X_libraries, however $X_libraries was nowhere set and libtool admonished the empty "-L" - libMolecuilderUI now depends on libMolecuilderAction - all unit tests now have libMolecuilderAction and libMolecuilderUI due to non-interactive calls of actions commit 0ba4103fb29b3b7e601800e6a20213e08ebef164 Author: Tillmann Crueger Date: Thu Aug 5 17:46:01 2010 +0200 made the molecule::Output() method use STL algorithms commit bf8e2011562f9d20279686ee614b46b1841057b6 Author: Tillmann Crueger Date: Thu Aug 5 17:40:24 2010 +0200 Added missing OBSERVE markers and formula updates in molecule class commit 6cb9c7693351852c2d0ddaed62d6aa758c69bf10 Author: Tillmann Crueger Date: Thu Aug 5 17:31:44 2010 +0200 Changed order of destruction in World destructor commit e345e3bcd6441a307cf3d1c99cbaaaf71fe6fdc1 Author: Tillmann Crueger Date: Thu Aug 5 17:16:03 2010 +0200 Added output operator for element class commit 0cc92bd647a343a5a88f690412f93ba23d423db5 Author: Tillmann Crueger Date: Thu Aug 5 16:39:37 2010 +0200 Made the molecule::CopyMolecule() method use STL algorithms commit 00abfcfa5a74be07945fa53e805a43f3868a7993 Author: Tillmann Crueger Date: Thu Aug 5 16:32:25 2010 +0200 Added a method to class atom that determines if the father of this atom is some pointer commit 426f2ac4fc2c6790953b4c927a1b9d9cc85dd8d0 Author: Tillmann Crueger Date: Thu Aug 5 16:24:41 2010 +0200 Added a method to enumerate formulas commit d36ffbab8040e6048ca9da1dc9895d50041e2e05 Author: Tillmann Crueger Date: Thu Aug 5 16:23:55 2010 +0200 Removed unused field No in element class commit d9f51cb280e98ac944ead00ed03c5ba44dea72a4 Author: Tillmann Crueger Date: Thu Aug 5 16:23:23 2010 +0200 Added some basic structures for enumeration of STL containers commit 097902be5ff8ef57bf1cc3c04b8b7a9b5647e471 Author: Tillmann Crueger Date: Thu Aug 5 14:35:29 2010 +0200 Made the Programm dump some memory statistics to a file when an assertion fails commit ec149d57eafe254945c9fd3a0cf4a7328635e2bd Author: Frederik Heber Date: Thu Aug 5 16:25:40 2010 +0200 BUGFIX: ActionSequenceTest::doesUndoTest() had typo, used wasCalled1 twice instead of wasCalled2. commit 0078393b69ff604aa9582a10c2b058d0fa571aeb Author: Tillmann Crueger Date: Thu Aug 5 14:12:25 2010 +0200 Made the Programm abbort when an assertion fails in non-interactive mode commit 997b2a6a84c3c8d0693efb66718dbd538215da33 Author: Tillmann Crueger Date: Thu Aug 5 14:02:37 2010 +0200 Added one more complex test to formulatest commit 38e075ea05aab70de5bf8ff6266d02dd21e2b43b Author: Tillmann Crueger Date: Thu Aug 5 13:10:03 2010 +0200 Added one more error condition for formula parsing commit 668e2869001135836aeeff00a70261130c6ce31a Author: Tillmann Crueger Date: Thu Aug 5 12:46:38 2010 +0200 Added testing for more complex formulas commit 4d1d4360e09cdfacfe99c95631de6c82c32aa3aa Author: Tillmann Crueger Date: Thu Aug 5 12:46:06 2010 +0200 Improved formula parsing to include more complex expressions commit 9d580369e5b1b993a658fb00a53cf0fcc2da9e1f Author: Tillmann Crueger Date: Thu Aug 5 11:51:03 2010 +0200 Added a method that allows adding complete formulas to one another commit 68047038369d89ac57d37246b5395f854b7950f7 Author: Tillmann Crueger Date: Thu Aug 5 11:49:50 2010 +0200 Fixed some missing return statements commit 506d2f46e4d2d0dcb38acbd0f2eb161166af5cae Author: Tillmann Crueger Date: Wed Aug 4 16:43:44 2010 +0200 Speed up of ASSERT macro by only calling the _my_assert::check() function when an assertion needs to be handled commit 00fca342f5a4daaf7dfd8f749ff2e5ea93cf37be Author: Tillmann Crueger Date: Wed Aug 4 16:43:16 2010 +0200 Removed duplicate include of MemDebug.hpp in TextWindow.cpp commit 90aeb9429ecb7ac9202ee9810aa2ed003e1612f8 Author: Tillmann Crueger Date: Wed Aug 4 16:17:49 2010 +0200 Added a method to access the backtrace when an assert fails commit 796aa6109f3bcda0d0023cb6b215cc697b7f10b4 Author: Tillmann Crueger Date: Wed Aug 4 15:25:25 2010 +0200 Added faster unity build target to makefiles - unity build means a single compilation unit is build which is then send to the compiler for compilation - unity build is for fast recompiles when a lot of compilation units are covered - see: http://buffered.io/2007/12/10/the-magic-of-unity-builds/ commit 10d29055035af308d1f48af87d768242f73e471b Author: Tillmann Crueger Date: Wed Aug 4 14:50:20 2010 +0200 Repaired build of testrunner for unittests commit d193a2dee7706bf98b76733a9baf103bb6afd0a7 Author: Tillmann Crueger Date: Wed Aug 4 14:37:50 2010 +0200 Simplyfied building of QT4 mocfiles needed for GUI commit ca275d750e80aa558cd420b123b22061e5c42f1d Author: Tillmann Crueger Date: Wed Aug 4 14:27:21 2010 +0200 Seperated some basic parts of the molecuilder inside their own library commit 839e850f2c609aafed3de79cbd46463a49fb8515 Author: Tillmann Crueger Date: Wed Aug 4 12:19:50 2010 +0200 Removed some unecessary opened namespaces commit c4b85d6ea1f5d2cf83890375367e8b2d50b68ca6 Author: Tillmann Crueger Date: Wed Aug 4 12:03:57 2010 +0200 Removed typo in Header guard of SubgraphDissectionAction.hpp commit 8dc761403e0832fbb5a835e5d44e9cfde8c500d3 Author: Tillmann Crueger Date: Wed Aug 4 12:02:48 2010 +0200 Added missing header guards in linearsystemofequations.hpp commit 53fb711e3dd431c8723ef18853d48e058d5f8378 Author: Tillmann Crueger Date: Wed Aug 4 11:58:12 2010 +0200 Changed name of state in NotAllAtomsAction from SelectionAllAtomsState to SelectionNotAllAtomsState commit 11e20632b415a9873a895417c6ff2f4b36ac2909 Author: Tillmann Crueger Date: Wed Aug 4 11:34:45 2010 +0200 Removed multiple definitions of some global constants from executeable commit d74077614bf2a27f66c91bf6bce70250442a0463 Author: Frederik Heber Date: Sat Jul 31 17:23:10 2010 +0200 Member variable Vector and element of class atom are now private. - renamed to AtomicPosition - created interface class VectorInterface with alle functions from class Vector as virtual ones - implemented in AtomInfo - everywhere direct access to AtomicPosition has been replaced by get/setPosition() and others - for element get/setType() have been present already, direct access has been replaced by calling of these. - class TesselPoint now derives from AtomInfo and ParticleInfo - tesselation.cpp split up - new files for the classes: BoundaryLineSet, BoundaryPointSet, BoundaryPolygonSet, BoundaryTriangleSet, CandidateForTesselation, PointCloud, TesselPoint - all defines are in BoundaryMaps.hpp commit 0632c5011c407d14824f9834dbe1d8ffa6cbd014 Author: Tillmann Crueger Date: Fri Jul 30 16:10:27 2010 +0200 Removed some BOOST_FOREACH iterations and replaced with simpler mapping on the Set commit a33ea5ee15b185147dacaeb121ba462dfa2bdf6b Author: Tillmann Crueger Date: Fri Jul 30 16:09:36 2010 +0200 Added a method to the AtomSetMixin that allows mapping arbitrary functions to the position of all atoms commit 14d54126c5f1aa147041e69c8aec444f7c7197f9 Author: Tillmann Crueger Date: Fri Jul 30 16:09:06 2010 +0200 Made the molecule class use the new mixin commit 4d72e4d6e030dc6233596e0465f6514d6797fbd8 Author: Tillmann Crueger Date: Fri Jul 30 15:07:00 2010 +0200 Made the World use the new mixin for sets of atoms commit 5a5c476a662f9c7033228100437ed54dbb00f75c Author: Tillmann Crueger Date: Fri Jul 30 15:05:55 2010 +0200 Added a mixin for STL-Containers that carry atom* to add specialized functions to those containers commit 316d3abc887e74a9f66240c743395e313347964b Author: Tillmann Crueger Date: Fri Jul 30 14:38:01 2010 +0200 More testing added for BoxUnittest commit e1ab975f05cdcd75e351896a3442ae67466fd10a Author: Tillmann Crueger Date: Fri Jul 30 14:26:49 2010 +0200 Added a function that allows fast creation of a cuboid box by giving the second endpoint commit d2938f559cdfcf2c43689e8fd5ac000b44e4456b Author: Tillmann Crueger Date: Fri Jul 30 14:18:18 2010 +0200 FIX: Several problems with Wrap and Explode code of box detected by unittest commit 77bc4fe0cdca64f3dfd9a7c6099d2fae25eb1562 Author: Tillmann Crueger Date: Fri Jul 30 14:17:56 2010 +0200 Added Unittest for Box class commit 04e61ae7b58467011d8a43d40965adf5c17ef5db Author: Tillmann Crueger Date: Fri Jul 30 10:41:24 2010 +0200 Fixed a small bug in the valgrinding part of the test script commit 16648f2a24b05c56b2e93ec5618bf5332f5ce6c8 Author: Tillmann Crueger Date: Thu Jul 29 18:09:57 2010 +0200 Made the Box::explode() method handle boundary conditions commit f3be871105a51d83420a3be4cb717bc407fcadcb Author: Tillmann Crueger Date: Thu Jul 29 16:48:25 2010 +0200 Made the Box::isInside() method respect ignored boundaries commit f1c8382b9f9fe8d0ed8c2cf899995c147189853f Author: Tillmann Crueger Date: Thu Jul 29 16:45:56 2010 +0200 FIX: periodicDistance could be off, if both vectors are more then one Box-lenght apart commit c7256258ce9028e987b6933cf437a2e6f7674e9b Author: Tillmann Crueger Date: Thu Jul 29 16:35:53 2010 +0200 Added a method that allows periodic wrapping of points depending on the boundary condition commit 29ac783cec550c47c227635304d0424ceb3f0714 Author: Tillmann Crueger Date: Thu Jul 29 15:47:31 2010 +0200 Added a method that produces the bounding planes for a Box commit 77374ea2c8074d8013ec77f48bccfe1fdc84182c Author: Tillmann Crueger Date: Thu Jul 29 15:33:14 2010 +0200 Added BoundaryConditions to the Box class commit 031f629b0c3db6e79c133dfa3b75ce4ca9fb6212 Author: Tillmann Crueger Date: Thu Jul 29 15:53:17 2010 +0200 Made the Action test if the dialog contains queries, when interactive calls are handled commit c508ef501e6259b2d06b29fc1c28beafbb772063 Author: Tillmann Crueger Date: Thu Jul 29 15:52:07 2010 +0200 Added a method to test wether a Dialog actually has queries to do commit 112f90d8bcaa5639e2da0aacacc5b07896bbb981 Author: Tillmann Crueger Date: Thu Jul 29 14:23:21 2010 +0200 Fixed ActionSequenceTest and ManipulateAtomsTest commit 047878507f119431554d5b20d04f22722ba5bbed Author: Tillmann Crueger Date: Thu Jul 29 13:46:26 2010 +0200 made all actions pass on the dialogs and add the corresponding queries commit f7ee68455b736a8ecdfe1712d7827666c2b1f792 Author: Tillmann Crueger Date: Thu Jul 29 13:39:41 2010 +0200 Added a simple UI-Stub to be used in Unittests commit 5fbaeb0a70534a7d02d8188750e4dc9128380676 Author: Frederik Heber Date: Thu Jul 29 12:51:43 2010 +0200 TESTFIX: test_all.sh used "all install" under compile() which causes glitches when compiling with multiple threads. - This caused e.g. error code of 2 due to two glitches despite the executables still got compiled in the end. - As all tests are done on not-installed binaries, we can safely removed "install" from the make command. commit 519e6385868c3113e826f198368bbe6242ea3e51 Author: Frederik Heber Date: Thu Jul 29 12:51:01 2010 +0200 BUGFIX: includes for vector and string were missing. commit 0bb05aafb7fc529b88af2f985c63c3371f82b845 Author: Frederik Heber Date: Thu Jul 29 12:50:42 2010 +0200 BUGFIX: include for boost/lexical_cast.hpp was missing. commit 4c9a97f55a0e6bff73cafb2b760c75bbe1474ac5 Author: Tillmann Crueger Date: Thu Jul 29 10:57:20 2010 +0200 FIX: added some forgotten includes to fix NO_MEMDEBUG builds commit 9106c6402d2f9b63468cbd99c4736296903cc4cb Merge: b1a39b1 a7b777c Author: Frederik Heber Date: Wed Jul 28 15:48:50 2010 +0200 Merge branch 'StructureRefactoring' into stable commit b1a39b130749accaf2cd0103a233cf86ae75ba4d Author: Frederik Heber Date: Wed Jul 28 15:43:41 2010 +0200 Logo for the TRAC of molecuilder created. commit 2ad48247b6f9de9eea8821024e501debd95f776e Merge: 69baa45 a7b777c Author: Tillmann Crueger Date: Wed Jul 28 15:01:13 2010 +0200 Merge branch 'StructureRefactoring' into Shapes commit a7b777c63b3b50eee5da3df0edbd51b6e7eaad91 Merge: 677e130 b2d8d07 Author: Tillmann Crueger Date: Wed Jul 28 15:01:02 2010 +0200 Merge branch 'stable' into StructureRefactoring commit b2d8d07287f34d6bfded72d40c2a8d0ac000fbf2 Author: Frederik Heber Date: Wed Jul 28 14:33:02 2010 +0200 Registry pattern split off of ActionRegistry, the latter converted to derive from Registry - new header files Registry.hpp and Registry_impl.hpp containing templated registry pattern. - ActionRegistry derives from Singleton and Registry - renamed ... to ActionRegistry::isActionPresentByName(). commit 69baa45336bd99a7c3f9d346cd21720262f66f4e Author: Tillmann Crueger Date: Wed Jul 28 12:28:47 2010 +0200 Added a method to rotate arbitrary planes commit b596482eafb1c4cbb09102c86f50316403155523 Author: Tillmann Crueger Date: Wed Jul 28 12:05:01 2010 +0200 Added methods that allow rotation of complete lines commit f12805044cf8664fb21e56e7d0168c021d26ae87 Author: Tillmann Crueger Date: Wed Jul 28 11:43:54 2010 +0200 BUGFIX: Normals were not normalized in shape operations commit 400170ef8c981c94a522a25f84e44fa7d7fe2ed3 Merge: c6f3950 677e130 Author: Tillmann Crueger Date: Wed Jul 28 11:35:44 2010 +0200 Merge branch 'StructureRefactoring' into Shapes commit 677e130f3cbb80cdb1d7c6766dd729592710cd05 Merge: 7067bd6 0430e31 Author: Tillmann Crueger Date: Wed Jul 28 11:21:14 2010 +0200 Merge branch 'stable' into StructureRefactoring Conflicts: src/Makefile.am commit d6e7193f589711260bf0478059c147774ab152b9 Author: Frederik Heber Date: Tue Jul 27 11:51:40 2010 +0200 BUGFIX: some Molecule...Descriptors::find() function copied the MoleculeSet from getMolecules() instead of using it as reference. - Strangely though, this caused problems only when checking with test_all.sh and not with normal build (error was undefined ref to ObservedContainer::ObservedContainer(...)) commit 0430e3120648e3906f33481ea1869d1cb3df52a9 Author: Frederik Heber Date: Mon Jul 26 20:42:57 2010 +0200 FIX: ActionCalls.hpp removed, ActionRegistry.hpp included instead - also, extended documentation of Action (Action howto). commit e076cd4f3c751dde2a536163d4fb7f787a2b947e Author: Frederik Heber Date: Mon Jul 26 20:06:18 2010 +0200 Moved each action call function definition into the header file of the respective action. commit a8f6ae5ce536803ae6e82914f2201d0c1aa13cc8 Author: Frederik Heber Date: Mon Jul 26 19:34:11 2010 +0200 All WorldActions contain now a ActionCall.hpp function. commit 628b52952e0e149c79ef35a9bb2f6642e2d6e984 Author: Frederik Heber Date: Mon Jul 26 19:15:18 2010 +0200 All TesselationsActions contain now a ActionCall.hpp function. commit 3b7dfb2ecf62a955b44dcc1485337e8a43d366bf Author: Frederik Heber Date: Mon Jul 26 19:15:04 2010 +0200 All SelectionActions contain now a ActionCall.hpp function. commit 215b89c1e9cba45cc93cbfeab08c569dbea299a7 Author: Frederik Heber Date: Mon Jul 26 19:05:46 2010 +0200 All ParserActions contain now a ActionCall.hpp function. commit 1a3c26204c80008fe2a3b47468292577da52d672 Author: Frederik Heber Date: Mon Jul 26 19:03:48 2010 +0200 All MoleculeActions contain now a ActionCall.hpp function. commit 4ff081f9606c7d6af266d01f479ccdf42cf89038 Author: Frederik Heber Date: Mon Jul 26 18:52:24 2010 +0200 All FragmentationActions contain now a ActionCall.hpp function. commit ecbc9a8de3b5aafb1e22bbde2a54f5a05b496f73 Author: Frederik Heber Date: Mon Jul 26 18:47:07 2010 +0200 All CmdActions contain now a ActionCall.hpp function. - to have the Action's NAME, the action call function has to be friend of the Action. commit 1a8fbf6987028809244a95a9e6da79edce2cc271 Author: Frederik Heber Date: Mon Jul 26 18:41:03 2010 +0200 All AtomActions contain now a ActionCall.hpp function. - to have the Action's NAME, the action call function has to be friend of the Action. commit 4e4c4d1e9642e0bc2ac442c428c43eb29952c651 Author: Frederik Heber Date: Mon Jul 26 15:39:27 2010 +0200 Shifted select-.. actions from arguments to actions in MapOfActions::DescriptionMap. commit b31cfad9c427552e0dc8eb0d844f9d10b356c755 Author: Frederik Heber Date: Mon Jul 26 15:38:38 2010 +0200 All AnalysisActions contain now a ActionCall.hpp function. - to have the Action's NAME, the action call function has to be friend of the Action. commit aa3d7a6b21cecea7518512034a2aaa7e8c66e862 Author: Frederik Heber Date: Mon Jul 26 15:37:29 2010 +0200 ActionCalls.hpp header added that contains concise function calls of all actions. - the pattern is always the same: - put parameters into respective entries of ValueStorage - call Action::call(NonInteractive) commit b763940dbc4ff4cab84e0997b21e0e62696f757b Author: Frederik Heber Date: Mon Jul 26 15:36:09 2010 +0200 PrincipalAxisSystemAction takes molecule from selection. commit a8a010e328f77377ca5cf5d0610c43e918811836 Author: Frederik Heber Date: Sun Jul 25 23:55:48 2010 +0200 TESTFIX: tests/Tesselations needed --select-molecule-by-id and removal of sphere-radius. - TESTFIX: tests/Tesselations/heptan/1.5 ... again a degenerated polygon has its centerline (two triangles) flipped. commit e65de81ec88b9121fda86385147b35c5ae50fbfc Author: Frederik Heber Date: Sun Jul 25 23:43:56 2010 +0200 Fixed all correlations for new selected sets of molecules. - MapOfActions: added missing action names point-correlation and surface-correlation. - BUGFIX: AnalysisPairCorrelationAction::createDialog() - needs to query for multiple element_s_. - BUGFIX: MapOfActions::queryCurrentValue() - added values twice, due to ..ID or Z was not set to -1 after push_back. - TESTFIX: Analysis/* all needed --select-all-molecules in front. - TESTFIX: Analysis/4 need additional --unselect-molecule-by-id 207 to avoid correlating againts itself. - TESTFIX: changed all correlation unit tests, i.e. replaced TestList by allMolecules from getSelectedMolecules(). - analysis_correlation.[ch]pp: - Replaced MoleculeListClass by const std::vector - ActiveFlag check is removed, we hand over getSelectedMolecules() from World (or any other vector of molecules) instead. commit 521bbfdcb3f9d76603e416866b36445f50dddcf1 Author: Frederik Heber Date: Sun Jul 25 23:42:34 2010 +0200 DOCUFIX: Filename in header was missing ...Action.[ch]pp. commit e472eab9f7f6929151469defe1f2df63c0c7f1f5 Author: Frederik Heber Date: Sun Jul 25 23:41:34 2010 +0200 Added new all/none selection actions for atoms and molecules. - new function World::getSelected...() needed for Undo/Redo of new (Not)AllAtoms/AllMoleculesActions. commit 8d4aa17e45d4c4924afa38b6058dad577c3d5117 Author: Frederik Heber Date: Sun Jul 25 21:41:08 2010 +0200 TESTFIX: Filling/2 needed replacement of option --molecule-by-id by action --select-molecule-by-id in front of. commit 1d9b7d286b00ba8325055cd0a5629ca79e89b120 Author: Frederik Heber Date: Sun Jul 25 21:37:53 2010 +0200 TESTFIX: Tesselation/* all needed replacement of option --molecule-by-id by action --select-molecule-by-id in front of, Action changes. - MapOfActions: removed sphere-radius. - NonConvexEnvelopeAction: own argument is now sphere-radius, molecule is by selection. - ConvexEnvelopeAction: argument is void, molecule is by selection. commit 898e0a4df391ec8fe6678473aa1fa316501fd25c Author: Frederik Heber Date: Sun Jul 25 21:34:09 2010 +0200 TESTFIX: Fragmentation/* all needed replacement of option --molecule-by-id by action --select-molecule-by-id in front of. commit 5b5c4d941263e481d3740de8543772b60dd0020a Author: Frederik Heber Date: Sun Jul 25 21:29:18 2010 +0200 TESTFIX: Molecules/* all needed replacement of option --molecule-by-id by action --select-molecule-by-id in front of. - MapOfActions: removed molecule-by-id and molecule-by-name - MapOfActions: Added selection menu and all four selections, changed descriptions of submenus - BUGFIX: MoleculeSaveBondsAction::createDialog() - missing return statement. commit 8467dfc175bccf3411a7128d55ac9cf9ac50454a Author: Frederik Heber Date: Sun Jul 25 21:16:55 2010 +0200 BUGFIX: BoxValue were upper not lower tridiagonal. Due to pcp's BoxLength we parse a lower diagonal symmetric matrix and hence BoxValue should parse these as well: - FIX: MapOfActions::validate(), BoxCommandLineQuery::handle() and BoxTextQuery::handle() commit 12008824fc3670b41b975698811410dde6d7084e Author: Frederik Heber Date: Sun Jul 25 21:12:45 2010 +0200 TESTFIX: Simple_configuration/5 needs select-atom-by-id in front of and remove-atom now has MapOfActions::TypeMap entry of void. commit 02397167df0b91137a5e13eb261a51fddb70bd1e Author: Frederik Heber Date: Sun Jul 25 21:10:44 2010 +0200 TESTFIX: Simple_configuration/4 now needs select-atom-by-id in front. commit 533838bb6258839e008c280c894b054f56860285 Merge: e971c49 e2009b3 Author: Frederik Heber Date: Sun Jul 25 21:07:06 2010 +0200 Merge branch 'SelectionActions' into SplitDialogFromAction_performCall Conflicts: src/World.cpp src/World.hpp - World had two new functions isSelected() and countSelected...() which both were incorporated. - CommandLineParser::Parse() did also add visible which is nonsense, only needed for help screen and prevented parsing of non-generic. commit e971c49b6c013bf75893b7075dc19dd848a645cc Author: Frederik Heber Date: Sun Jul 25 20:27:39 2010 +0200 Added .gitignore commit 8d410058bb178563a508e22240f5a6904b36d10e Author: Frederik Heber Date: Sun Jul 25 20:24:40 2010 +0200 BUGFIX: AtomChangeElementAction wrongly expected vector of elements instead of single element. commit 33b7508a57788b7cdfd9c4759f14b19d528942ae Author: Frederik Heber Date: Sun Jul 25 20:17:35 2010 +0200 TESTFIX: Simple_configuration/3 now discards vector 0,0,-1 being outside of domain. commit 39b639da773383a72e7b82b0ea762ed7ecc723ab Author: Frederik Heber Date: Sun Jul 25 20:14:09 2010 +0200 Lots of small fixes to MapOfActions: - MapOfActions::TypeEnumMap added ListOfVectors. - BUGFIX: queryCurrentValue(..,Box) did not set the box matrix. - BUGFIX: setCurrentValue(..,Box/Vector) had typeid Box and Vector instead of ...Value - AddOptionsToParser() - atoi/atof of default CurrentValue replaced by lexical_cast commit 8bc7336e7ee4c47d976c2ede9ebfa2e8c10ad89e Author: Frederik Heber Date: Sun Jul 25 20:11:53 2010 +0200 BoxQuery contains Box not double[6]. - BUGFIX: VectorCommandLineQuery - isInside..() should have been !isInside...() - BoxCommandLineQuery::handle(),BoxTextQuery::handle() - use box class - BoxQuery has class Box as member variable commit 3037bebd7259883448f4e5f8462ee5ba3cf1f705 Author: Frederik Heber Date: Sun Jul 25 20:11:02 2010 +0200 WorldChangeBoxAction::performCall() - don't need cell_size from the World and only need to set it once. commit 0ae36b0d684e99d9f522b1a8d721382802fd6aba Author: Frederik Heber Date: Sun Jul 25 20:06:17 2010 +0200 Box::isInside() now uses MYEPSILON as additional boundary of the [0,1) domain. commit 85537af8294c6e9489540850a5bd0ec864a0f10f Author: Frederik Heber Date: Sun Jul 25 20:04:50 2010 +0200 BUGFIX: AtomAddAction::performCall() expect vector of elements instead of single element. commit e2f311462bda68e5bd58fe63105915364c2d7653 Author: Frederik Heber Date: Sun Jul 25 20:04:24 2010 +0200 MissingValueException is not caught in Action::call() anymore. commit 7cd6e7ab696a3676cd5e8add0454d596f7c6cf0f Author: Frederik Heber Date: Sun Jul 25 17:07:42 2010 +0200 Add all possible versions of queries where the user is asked for multiples of the same. - Note that these are correctly implemented in TextUI and CommandLineUI, but not yet in QT4. commit 0ff6b538342f7d2df5bc0d9e46d66cdd205ae887 Author: Frederik Heber Date: Sun Jul 25 17:07:07 2010 +0200 Box::isInside() function added to check whether a given vector is inside simulation domain or not. commit 85f35e76fdf51e84ed1a45e0b8d55715d7fef858 Author: Frederik Heber Date: Sun Jul 25 17:06:27 2010 +0200 BUGFIX: setCurrentValue was not correctly templated. commit c6f3950823f0d994bbcf963786243385a0ef3a90 Author: Tillmann Crueger Date: Sat Jul 24 13:43:18 2010 +0200 Added methods to calculate the intersections of Shapes with arbitrary lines commit 40196a0aea164ac0333f8918bdc9b72e107db6a3 Author: Tillmann Crueger Date: Sat Jul 24 13:29:55 2010 +0200 Removed unecessary assert in LinePoint class commit d6f3954f8cbe5b1fcad21b7d0e8d67b6603fbea6 Author: Tillmann Crueger Date: Sat Jul 24 13:25:21 2010 +0200 Added iterator structure for LineSegmentSets commit 0b0a20eccd97295d1e20b853c15636671763345f Author: Frederik Heber Date: Fri Jul 23 19:30:57 2010 +0200 Inserted all possible queries into MapOfActions. - MapOfActions::query/setCurrentValue(): only special classes such as atom, Box, element, molecule, Vector need a specialization of the template. - also added missing MissingValueException files. commit dde125b0d55be10505f7893922a77c27d75e2f3f Author: Frederik Heber Date: Fri Jul 23 19:30:12 2010 +0200 SetOutputFormatsAction says which format it could not understand. commit eeacbc9259d9d1fb1e8e3b74090b8bdf58c24064 Author: Frederik Heber Date: Fri Jul 23 19:29:39 2010 +0200 BUGFIX: ValueStorage::getDescription did not return the string from MapOfActions. commit 6bf52f5115bd3250661048f901748f626f16a39b Author: Frederik Heber Date: Fri Jul 23 19:28:56 2010 +0200 BUGFIX: default flag of call was NonInteractive instead of Interactive. commit 4e145c4e099c7b64eef25a68a2f37a14cb86cec0 Author: Frederik Heber Date: Fri Jul 23 18:24:35 2010 +0200 Actions can now be called non-interactively, MissingValueException thrown. - new exception MissingValue which is thrown when MapOfActions does not have a desired entry in CurrentValue map. - new enum Action::QueryOptions. - Action::call() has flag whether call should be interactive (popping up dialog) or not. - cleaned-up Makefile.am a bit ... commit 655c98e8813e3c220ff0aee30f2ab51b12bbf935 Author: Frederik Heber Date: Fri Jul 23 18:23:13 2010 +0200 Some derived Actions lacked return NULL in createDialog(). - Actions are: ActionHistory (Undo/Redo), ErrorAction, ManipulateAtomsAction, MethodAction. commit ed476ecff64cd916489e2ddb99649474900e7c49 Author: Tillmann Crueger Date: Fri Jul 23 16:43:02 2010 +0200 Added a Class that allows description of sets of LineSegments from the same line commit 49d3d394a554ea272f374fc7bb58313091c1f258 Merge: a4e9bb5 7067bd6 Author: Tillmann Crueger Date: Fri Jul 23 16:07:10 2010 +0200 Merge branch 'StructureRefactoring' into Shapes Conflicts: src/Makefile.am commit a4e9bb5add6b79d2cf25d14ee0e30aa2f2fd6271 Author: Tillmann Crueger Date: Fri Jul 23 13:59:28 2010 +0200 Added a class that allows specifying Segments of a Line commit 6256f5f31eca13a77c3ab8175d56dc82de37ad35 Author: Tillmann Crueger Date: Fri Jul 23 13:10:03 2010 +0200 Added a class that allows specifying points on a line commit 82cf7935cdf448a9e42acfbb7f0211a8c378e155 Author: Tillmann Crueger Date: Fri Jul 23 12:49:09 2010 +0200 Added comparison operators to Line and Plane commit 358577c738840fb75b2f1424dc01e889a87c14c6 Author: Frederik Heber Date: Fri Jul 23 00:02:54 2010 +0200 Fixed used iterators in World::countSelected..() functions. commit c46d63e5bfa9a26f824025bbe7c8e680be6a63a0 Author: Frederik Heber Date: Fri Jul 23 00:02:37 2010 +0200 TextMenu::LeaveAction still lacked createDialog(). commit 3731b4909c6d6ae4b595859d66058d1e878886f9 Author: Frederik Heber Date: Fri Jul 23 00:02:01 2010 +0200 Fixed remainder of Dialog and derived classes for still present _target's. commit 7cd469035250605f6e00967cd82540daddab131e Author: Frederik Heber Date: Fri Jul 23 00:00:57 2010 +0200 Using ostringstream to convert all templated values in MapOfActions::queryCurrentValue(). commit 30db643034390bf55f17c017b529b8119ce6f813 Author: Frederik Heber Date: Fri Jul 23 00:00:15 2010 +0200 FIX: IllegalTypeException had wrong base constructor call (Math instead of CustomException). commit 80951deb21b4e43ca4cfbc56dc84d5dc794d03b5 Author: Frederik Heber Date: Thu Jul 22 23:59:37 2010 +0200 Fixed all remaining Action's and derived classes that lacked createDialog(). commit 4c5aafe44e0553c9f3a5d4fab8d4b5c64f2fe624 Author: Frederik Heber Date: Thu Jul 22 23:29:39 2010 +0200 Some fixes to class ValueStorage. - it's _std::_string commit 3e54d09c77f638758ad6641ed6f248e16acddeab Author: Frederik Heber Date: Thu Jul 22 23:23:35 2010 +0200 converted VersionAction to new createDialog() and implemented trivial Undo/Redo. - two new functions MapOfActons::query/setCurrentValue() for vector of strings, needed in SetOutputFormatsAction. commit ff22c5488c443910ae2ed9f42323b573f3ed8ca1 Author: Frederik Heber Date: Thu Jul 22 23:22:18 2010 +0200 converted SetOutputFormatsAction to new createDialog(). commit aee3b1c4af887c0e1015aed573475c28e87a121f Author: Frederik Heber Date: Thu Jul 22 23:20:19 2010 +0200 converted SetGaussianBasisAction to new createDialog() and implemented Undo/Redo. commit 792597e9e0381a667a6b5f4b2ed054594ce29761 Author: Frederik Heber Date: Thu Jul 22 23:16:38 2010 +0200 converted SetDefaultNameAction to new createDialog() and implemented Undo/Redo. commit 22e780bbf6f5c725e027d9ab132ca1db5499d184 Author: Frederik Heber Date: Thu Jul 22 23:12:42 2010 +0200 converted ScaleBoxAction to new createDialog(). commit bfe2c2376eef4d25597c46dffbc8be4aa9e641ad Author: Frederik Heber Date: Thu Jul 22 23:11:25 2010 +0200 converted RepeatBoxAction to new createDialog(). commit 9a9b2a4e7522425066fc6a1bd09f6514fd33aa0a Author: Frederik Heber Date: Thu Jul 22 23:10:03 2010 +0200 converted RemoveSphereOfAtomsAction to new createDialog(). commit 37c282377309e6c7314b694b5ac9d214f2f02322 Author: Frederik Heber Date: Thu Jul 22 23:08:38 2010 +0200 converted OutputAction to new createDialog(). commit 7882e97372845c4211b7017289b0767c7640f0e2 Author: Frederik Heber Date: Thu Jul 22 23:07:35 2010 +0200 converted InputAction to new createDialog(). commit 1ba67dc303482db5e8e806e9d5a77130e6559d8f Author: Frederik Heber Date: Thu Jul 22 23:06:09 2010 +0200 converted CenterOnEdgeAction to new createDialog(). commit 8da96a6db3fd51cb98b529276b79af27bed95f2e Author: Frederik Heber Date: Thu Jul 22 23:04:59 2010 +0200 converted ChangeBoxAction to new createDialog(). commit 4aece0c92bada6519a2b0585e7f1ac407f98aa3b Author: Frederik Heber Date: Thu Jul 22 23:03:05 2010 +0200 converted CenterInBoxAction to new createDialog(). commit 805636c1a84c537ffb7e4a0f828e53da2248cfee Author: Frederik Heber Date: Thu Jul 22 23:00:40 2010 +0200 converted BoundInBoxAction to new createDialog(). commit afd9f3990504557f2919c5b1008d8e8482ca0a7f Author: Frederik Heber Date: Thu Jul 22 22:59:33 2010 +0200 converted AddEmptyBoundaryAction to new createDialog(). commit ff4fd2aeb1112a75a19f272dba7cc5f812c8bfd0 Author: Frederik Heber Date: Thu Jul 22 22:57:58 2010 +0200 converted NonConvexEnvelopeAction to new createDialog(). commit 8ae5d5cf568f384acb7eb804f5dd59b1cd24f9ba Author: Frederik Heber Date: Thu Jul 22 22:55:17 2010 +0200 converted ConvexEnvelopeAction to new createDialog(). commit ce875582fbb5f5e18e6066f03770f84c4062f205 Author: Frederik Heber Date: Thu Jul 22 22:52:46 2010 +0200 converted SaveXyzAction to new createDialog(). commit 0454de24d7826c743e8bf72803de5150dcaad02e Author: Frederik Heber Date: Thu Jul 22 22:50:59 2010 +0200 converted LoadXyzAction to new createDialog(). commit bcd16af2f919ca538832e3da2a39a8dcb526001b Author: Frederik Heber Date: Thu Jul 22 22:48:46 2010 +0200 converted VerletIntegrationAction to new createDialog(). commit a20fb922828a2cae71ce2599c7292517e36e3e0d Author: Frederik Heber Date: Thu Jul 22 22:47:06 2010 +0200 converted TranslateAction to new createDialog(). commit b9b26b4f8c9a891e4d9e93fb71e4b7ed88b734fe Author: Frederik Heber Date: Thu Jul 22 22:45:04 2010 +0200 converted SuspendInWaterAction to new createDialog(). commit 09cf39f004540b4a1fa4f428f06e3b9090501ab6 Author: Frederik Heber Date: Thu Jul 22 22:42:19 2010 +0200 converted SaveTemperatureAction to new createDialog(). commit fdf19840a41b116b91cdc084945b7e4eb18ade74 Author: Frederik Heber Date: Thu Jul 22 22:40:47 2010 +0200 converted SaveBondsAction to new createDialog(). commit e58fad1a254e20c7edff713925a268abc3fc1177 Author: Frederik Heber Date: Thu Jul 22 22:39:15 2010 +0200 converted SaveAdjacencyAction to new createDialog(). commit 8456137692c93232b395cca90f2a3f70b35e0e4f Author: Frederik Heber Date: Thu Jul 22 22:37:24 2010 +0200 converted RotateToPrincipalAxisSystemAction to new createDialog(). commit 620fe517294c6b1eb0a1188fa65ee5c1a3e23f3d Author: Frederik Heber Date: Thu Jul 22 22:35:06 2010 +0200 converted LinearInterpolationofTrajectoriesAction to new createDialog(). commit a001b7bae7fc080027af24c287be6ce37c2ce629 Author: Frederik Heber Date: Thu Jul 22 22:31:41 2010 +0200 converted FillWithMoleculeAction to new createDialog(). commit 5bc8520c0e46db93e06dda9f34e87f99e9b8d6cb Author: Frederik Heber Date: Thu Jul 22 22:28:53 2010 +0200 converted ChangeNameAction to new createDialog(). commit eacc3ba7af0a741a17b78b3cd4e0b82e63fba3a5 Author: Frederik Heber Date: Thu Jul 22 22:21:15 2010 +0200 converted BondFileAction to new createDialog(). - new functions World::countSelectedAtoms(), ::countSelectedMolecules() commit 1015fd16890804d2d405c29e0c84d6d75b318c8e Author: Frederik Heber Date: Thu Jul 22 22:16:32 2010 +0200 converted SubgraphDissectionAction to new createDialog(). commit 70d9b9588923a2b82bacfd9bcc82df00fe4e4d89 Author: Frederik Heber Date: Thu Jul 22 22:15:02 2010 +0200 converted FragmentationAction to new createDialog() and implemented trivial Undo/Redo. commit f394a631235ecfc70559d4b69abfc161fe834ab2 Author: Frederik Heber Date: Thu Jul 22 22:11:36 2010 +0200 converted DepthFirstSearchAction to createDialog() and implemented trivial Undo/Redo. commit 2dfeeb72918023992c28db24bd7a07782516893b Author: Frederik Heber Date: Thu Jul 22 22:09:33 2010 +0200 converted HelpAction to new createDialog() and implemented trivial Undo/Redo. commit 1d2d17710355e348eae106bab707de2345eb7d5d Author: Frederik Heber Date: Thu Jul 22 22:07:51 2010 +0200 converted VerboseAction to new createDialog() and implemented Undo/Redo. commit ccf31f7057c3906c5737703833cb5fd5d2d0a959 Author: Frederik Heber Date: Thu Jul 22 22:03:45 2010 +0200 converted FastParsingAction to new createDialog() and implemented Undo/Redo. commit a12e8e5341e9215b37c06f03b9620ebc80e559a9 Author: Frederik Heber Date: Thu Jul 22 21:59:36 2010 +0200 converted ElementDbAction to new createDialog(). commit bb2b2ca0ff9608fa56b820ca8736401f4e2106b8 Author: Frederik Heber Date: Thu Jul 22 21:57:57 2010 +0200 converted BondLengthTableAction to new createDialog(). commit 5cb3cb5366716e8e9c5de8107dd6ea020682b380 Author: Frederik Heber Date: Thu Jul 22 21:56:02 2010 +0200 converted RemoveAction to new createDialog() and uses selectedAtoms. commit 454065b27717ea548c0964c38faa741b66b99a94 Author: Frederik Heber Date: Thu Jul 22 21:51:42 2010 +0200 Changed ChangeElementAction to new createDialog() and uses selectedAtoms. commit 9d33ba90b201569cf2a4636a4a601a51ac2d6c93 Author: Frederik Heber Date: Thu Jul 22 21:45:26 2010 +0200 Added ValueStorage::getDescription(), i.e. now all occurences of MapOfActions in classes ...Action can be replaced. - MapOfActions replaced by ValueStorage in: MolecularVolumeAction, PairCorrelationAction, PointCorrelationAction, PrincipalAxisSystemAction, SurfaceCorrelationAction, AddAction. - AddAction converted to new createDialog(). commit ca1ba5fa8bafa494e600c237413e227f206e5cac Author: Frederik Heber Date: Thu Jul 22 21:38:03 2010 +0200 Adapted dialog->query...() calls of all CorrelationAction()s to removed _target. commit 75dc28fc85d478b74ec291d17bf76e24467a04bc Author: Frederik Heber Date: Thu Jul 22 21:36:18 2010 +0200 Dialog->query...() don't need a _target anymore, - new class ValueStorage servers as a mediator to MapOfActions to relax inter-dependencies. - setResult() now puts the value as string into ValueStorage. - all class Dialog and derivatives don't have a _target in their functions and bodies anymore. commit d02e07dab3e4ea3de415734aa0c09a9055b903bf Author: Frederik Heber Date: Thu Jul 22 21:11:35 2010 +0200 Split PairCorrelation into Pair, Point and SurfaceCorrelation. - also converted to new createDialog(). commit 0c9cc3712a5c382c45c76450228053bec2bc4637 Author: Frederik Heber Date: Thu Jul 22 19:57:15 2010 +0200 MolecularVolumeAction rewritten to new createDialog(). commit ab9a271cb834ee7a2ab0b27a13e8cb1df70f6566 Author: Frederik Heber Date: Thu Jul 22 19:53:44 2010 +0200 MapOfActions::TypeMap now contains type_info. We are going to use the information contained in MapOfActions to split Dialog (information gathering) from the performCall (execution) of the Action. Therefore, Dialogs will store information as string in MapOfActions' maps and the Actions will retrieve the needed information therefrom. - TypeMap now contains pointers to type_info - new TypeEnumMap mapping *type_info to enum Options - renamed map DefaultValue -> CurrentValue - new functions MapOfActions::getCurrentValue(), ...::setCurrentValue() as getter and setter of current value - new exception IllegalTypeException derived from CustomException, thrown when getCurrentValue is asked for value from an action/option-name with different type than stored in TypeMap. commit ba741882931cf414d8a361ce994b9e69acca3497 Author: Frederik Heber Date: Thu Jul 22 19:53:21 2010 +0200 new virtual function Action::createDialog(). commit e2009b3268f38b1451745713d4dccf21d2fee1b5 Author: Frederik Heber Date: Thu Jul 22 18:11:07 2010 +0200 Added a number of SelectionActions. - (un)select atom/molecule. - not integrated into MapOfActions so far commit 421a1fef86dc4ec954ba797991f1a9d2a371272d Author: Tillmann Crueger Date: Thu Jul 22 17:22:22 2010 +0200 Added a method that allows simple construction of new normalized Vectors from old ones commit 41da131154b8abb9caede9f906df297c2ff1fb8c Author: Tillmann Crueger Date: Thu Jul 22 17:21:53 2010 +0200 Added assignment operator to Line class commit 89ebc05f9d25fc22084c73a9c9b8760cb5150208 Author: Tillmann Crueger Date: Thu Jul 22 17:21:30 2010 +0200 Added assignment operator to plane class commit 79dd0e9e3fa1e814f7c51e2f278422ca285c24aa Author: Tillmann Crueger Date: Thu Jul 22 17:20:43 2010 +0200 Added forgotten return statement in translate_impl::toString() commit 7067bd6466a60f69edb4e9266035bf78437cb954 Author: Tillmann Crueger Date: Thu Jul 22 16:17:42 2010 +0200 Made all methods of the range struct explicitly inline commit e0e156d85fdcaa23fb674516eae0bcd9145a6870 Author: Frederik Heber Date: Thu Jul 22 16:09:53 2010 +0200 Added World::isSelected() for selectedAtoms and selectedMolecules. commit dc11c9885b5f04eecfb275bda7687c5c1da10440 Author: Tillmann Crueger Date: Thu Jul 22 16:08:22 2010 +0200 Made the id-pools in the World use range objects commit ee86a01bf2b6b9841d0ca5f11c1b068aec775fd6 Author: Tillmann Crueger Date: Thu Jul 22 16:07:55 2010 +0200 Simplyfied formula parsing using range objects commit 23761b2b68bd1bee3bc1be44564447aa972a481a Author: Tillmann Crueger Date: Thu Jul 22 16:07:25 2010 +0200 Added a small struct that allows specifying arbitrary ranges commit c17975fa05a0fa3b09c0db67796feee3b0020060 Author: Tillmann Crueger Date: Thu Jul 22 14:14:47 2010 +0200 Added a method to check whether two points lie on the same side of a plane commit f80e2088c830255b34275501faf65d8c7af6b0ee Author: Tillmann Crueger Date: Thu Jul 22 14:14:05 2010 +0200 Added a helper method that allows calculating the sign of a value commit 6d858c9886dca71766cd6b0447dde5afed9f1efd Author: Tillmann Crueger Date: Thu Jul 22 13:46:18 2010 +0200 Added Descriptor that allows specifying atoms within a given geometric shape commit c83b9867c0e8889457b66bd2ef73e753c6979558 Author: Tillmann Crueger Date: Thu Jul 22 13:23:28 2010 +0200 Made the instantiation of Formula::iterator and Formula::const_iterator less ugly by refering to typedefs commit 6e7147fbf707c3d045b0c5a64c360ce369ca6e10 Author: Tillmann Crueger Date: Thu Jul 22 13:14:08 2010 +0200 Added a Descriptor that allows querying molecules by their Formula commit f17e1c00afd55d3250e08fa28d2ae1c3d9a93e7e Author: Tillmann Crueger Date: Thu Jul 22 13:13:19 2010 +0200 Made the molecule::getFormula() method return an acutal formula object commit 3d27e625ab3656bec994850209304b7d17780c4c Author: Tillmann Crueger Date: Thu Jul 22 12:09:46 2010 +0200 Added more unittests to the FormulaUnittest commit d8a0ec5447cc54d61ca78725dce7690db3edd7aa Author: Tillmann Crueger Date: Thu Jul 22 11:17:45 2010 +0200 Made the Formula array resize itself in both directions - resizing the array to its smallest form helps speed up comparison of formulas and keeps the STL-equal algorithm from running over vector boundaries commit c644a524bbb56313dae40aa985d36e6ced862539 Author: Frederik Heber Date: Thu Jul 22 10:16:55 2010 +0200 test_all.sh now accepts "-j" to allow for parallel compiling, autotests used parallel-tests testdriver. commit e24c781fe9d1c42abdc27f5773fd0bc933008606 Author: Tillmann Crueger Date: Thu Jul 22 10:14:55 2010 +0200 Made the full log script more readable commit 1e1dac5d1c26592f4cda16544662cd19744d935c Author: Tillmann Crueger Date: Thu Jul 22 10:06:43 2010 +0200 Fixed old path in memcheck part of the test-script commit 9f632c18063d4f6ea1ed618c952feb9cf391178a Author: Tillmann Crueger Date: Wed Jul 21 17:48:22 2010 +0200 Added Unittest for formula class commit fefe0d73e0d99722995c4ecd07f09e9e949e86eb Author: Tillmann Crueger Date: Wed Jul 21 17:47:47 2010 +0200 FIX: Bug with vector resizing in Formula commit add42ac597f63fa61861a40489329fc4a5f1985f Author: Tillmann Crueger Date: Wed Jul 21 17:25:04 2010 +0200 Removed reverse formula iterators, because they would cause memory corruptions commit a6d6a964b111c9a4edb650b08d8aae44ad5d3f5a Author: Tillmann Crueger Date: Wed Jul 21 16:36:38 2010 +0200 Added explicit instantiation and fixed some bug for formula class commit d03bb14106e04d88a0fafff8de40436be73197a1 Author: Tillmann Crueger Date: Wed Jul 21 15:55:18 2010 +0200 Added methods to produce formulas from strings commit 574ddc1997af36d8056510e9d9e9c8a85a9d18e9 Author: Tillmann Crueger Date: Wed Jul 21 15:17:18 2010 +0200 Added an exception to indicate failures in parsing. commit 389cc816e8a29096dc750ee31848fa67835b3e9d Author: Tillmann Crueger Date: Wed Jul 21 15:09:30 2010 +0200 Used the formual class instead of single variables inside molecule commit 6f43ab53afcb10b11789dfb8789489256a97116b Author: Tillmann Crueger Date: Wed Jul 21 11:43:50 2010 +0200 Added a class that allow simple handling of molecules formulas commit f308e66546defa4255f80fbf3c82f29c462acdb7 Author: Tillmann Crueger Date: Wed Jul 21 10:48:30 2010 +0200 Changed signature of periodentafel::findElement(const char * const) to periodentafel::findElement(const std::string&) commit 4b6777882941b3ff2f74ea0433e4d8f60ce7ecc5 Author: Tillmann Crueger Date: Wed Jul 21 10:47:59 2010 +0200 Added forgotten include in MoleculePtrDescriptor.cpp commit 3d078db43513ccb8235950baa165cf56607d9167 Merge: c538d1b be97a84 Author: Tillmann Crueger Date: Wed Jul 21 09:49:33 2010 +0200 Merge branch 'stable' into Shapes commit be97a841b19bbe05e88f3d3ac69c9cb5cd562f10 Merge: ba9f5bc 818eda2 Author: Frederik Heber Date: Tue Jul 20 15:01:11 2010 +0200 Merge branch 'StructureRefactoring' into stable Conflicts: test_all.sh - test_all.sh was modified by Till in StructureRefactoring (these changes taken over). - World::setDomain() was missing OBSERVE macro. - MapOfActions: "molecule-by-name" needs String not Molecule. - TESTFIX: Tesselations/defs.in - paths changed such that @srcdir@ may be absolute. - TESTFIX: Tesselations/heptan/1.5/NonConvexEnvelope.dat - exchanged due to same surface but different polygon triangulation. - TESTFIX: Domain/4 molecule-by-id changed from 208 to 207 due to different handling of molecule ids. commit 818eda2ca9fc579caeeb6a28a62acdafefdec317 Author: Frederik Heber Date: Tue Jul 20 12:20:49 2010 +0200 Till forgot to add new MoleculeSelectionDescriptor files. commit cf0ca17240043fb2292a10bc3a162e9d0bc519d6 Author: Tillmann Crueger Date: Fri Jul 16 15:11:45 2010 +0200 Added Descriptors that allow description of all Selected molecules commit 48dcbd91eedf0cfdedd6629302e8f99743299f7f Author: Tillmann Crueger Date: Fri Jul 16 15:02:31 2010 +0200 Added descriptors that allow description of all selected atoms commit 8cce2b5df463530a83fa8856d708bdb2b2d3a553 Author: Tillmann Crueger Date: Fri Jul 16 14:46:42 2010 +0200 Made the MoleculeDescriptor and AtomDescriptor use faster STL-Algorithms for finding commit a1e0b6f1be63e55d242038e2c64dd5f9823775d6 Author: Tillmann Crueger Date: Fri Jul 16 13:07:08 2010 +0200 Improved speed of MoleculeDescriptor by using reference to MoleculeSet commit 41aa398d7989f0243a76894eb1e464a32fa1a1c1 Author: Tillmann Crueger Date: Fri Jul 16 12:58:56 2010 +0200 Made MoleculeIdDescriptor and AtomIdDescriptor faster by avoiding copy of the MoleculeSet/AtomSet commit 3839e5f035312ca46bfb725d2d888acf96119627 Author: Tillmann Crueger Date: Fri Jul 16 12:43:38 2010 +0200 Added iterators over selected atoms and molecules commit 61d655e9a4ef5bbca6eb19c0f978e9afd556ba93 Author: Tillmann Crueger Date: Fri Jul 16 12:34:12 2010 +0200 Added methods for unselecting molecules and atoms commit 90c4280af5b046af47159f7008b4dc774fe44e6c Author: Tillmann Crueger Date: Thu Jul 15 17:30:55 2010 +0200 Added several methods for selecting specific atoms in the World commit c084cc2e958b451246dd895b6538361c1917b4e4 Author: Tillmann Crueger Date: Thu Jul 15 17:21:06 2010 +0200 Added a method to query the molecule an atom belongs to. commit 1a76a68d49feaf784563ca346e88231d600c45ed Author: Tillmann Crueger Date: Thu Jul 15 16:24:04 2010 +0200 Removed public direct access to Atoms from world commit 3bf9e29f08c50350485e8aad28ef2508d9126efb Author: Tillmann Crueger Date: Thu Jul 15 16:14:42 2010 +0200 Replaced check for Symmetric matrix in Box class with check for invertible matrix commit c538d1b5308f3901321a944f8cd19ee51bd710f7 Author: Tillmann Crueger Date: Thu Jul 15 15:50:54 2010 +0200 Added a method that allows producing a Shape from a box commit d76a7c96ff64ff880a182051dbdc7b1efcf5385d Author: Tillmann Crueger Date: Thu Jul 15 13:49:49 2010 +0200 Added simpler method to create cuboids with arbitrary corners commit f3526d607890f3fcfd8b5d23a6ad1a35db5dc389 Author: Tillmann Crueger Date: Thu Jul 15 13:35:30 2010 +0200 Added simpler methods for constructing different spheres and ellipsoids commit 6d750fb7c5d9332c64781a7a84c9c52a9c1814a2 Author: Tillmann Crueger Date: Thu Jul 15 13:30:52 2010 +0200 More unittests for Shapes added commit 4506cc20472b8d58db669a251c79f21b2224a96c Author: Tillmann Crueger Date: Thu Jul 15 12:38:19 2010 +0200 Added more testing to Shape mechanism commit cfda6595600dae247edea8ccf14890385d812e0d Author: Tillmann Crueger Date: Thu Jul 15 12:37:56 2010 +0200 Added methods to output shapes on the screen commit ef84cadc5db4086525a9f34ca5107a692d7958a3 Author: Tillmann Crueger Date: Wed Jul 14 17:52:48 2010 +0200 FIX: Mixed up "And" and "Or" cases for Shape-Surface calculation commit 5de9da792c0c6d5f23931e92eabdc77e4eb40404 Author: Tillmann Crueger Date: Wed Jul 14 16:52:07 2010 +0200 Added some important Methods to Shape class hierachy - Shape::isOnSurface() - Shape::getNormal() commit 06300d00d22af71ed91871edbb1f04beff7b122c Author: Tillmann Crueger Date: Wed Jul 14 16:48:58 2010 +0200 Added some Exceptions that can be used by shapes to indicate various Problems commit 41ea3cd028fbf7ccea2699a1196524dd812f9536 Author: Tillmann Crueger Date: Wed Jul 14 16:48:09 2010 +0200 Added a Method to transpose matrices commit 4077821c1d6e0aefa5d6c385ff9c8290589d0295 Author: Tillmann Crueger Date: Wed Jul 14 14:42:13 2010 +0200 Replaced the three single unitVectors with an array to the unitVectors commit 5d880eb5a85f18d42f59f32306129b4caa42662c Author: Tillmann Crueger Date: Wed Jul 14 14:00:29 2010 +0200 Allowed observed access to iterators on Molecules commit e3d8654e1fbac6e503309807866493a373bc9d1c Author: Tillmann Crueger Date: Wed Jul 14 13:51:31 2010 +0200 Madet the internal iterators provided by the world unobserved commit 51be2aec80c917e90f5e10db857f1dd1874f26df Author: Tillmann Crueger Date: Wed Jul 14 12:36:29 2010 +0200 Made iterator access to the molecules observed commit 8774c5c1ce2e91c27547acbca62ebdfe34d3880a Author: Tillmann Crueger Date: Wed Jul 14 12:27:19 2010 +0200 Added operator-> for Observed Iterators commit b99bf3363a6a508d1a23884aaa7720f0f9124c92 Author: Tillmann Crueger Date: Sat Jul 10 16:48:44 2010 +0200 Moved the observedContainer templates to the Pattern directory commit 4ef9b7aecfb5daae2edf520a3935241c1540f1ca Author: Tillmann Crueger Date: Sat Jul 10 16:46:51 2010 +0200 Made the observed sets for Atoms more abstract using template mechanisms commit 4d7462383cb90d484c5fb2d357df84cb4cbf35ed Author: Tillmann Crueger Date: Sat Jul 10 16:22:25 2010 +0200 FIX: Repaired broken optimized builds commit 127a8ed2e2c789fb778e76459224ec0726bd9de4 Author: Tillmann Crueger Date: Thu Jul 8 18:04:11 2010 +0200 Improved managing of Ids in the World - Improved algorithm for managing ids to use less time and space - Made the moleculeIds managed commit 40f92823967a356c96216f245f50835157d08ba3 Author: Tillmann Crueger Date: Thu Jul 8 14:57:07 2010 +0200 Fixed a small misnaming of a variable commit fa0b18007c6019da11597450d8db648ae786ee6d Author: Tillmann Crueger Date: Thu Jul 8 14:51:15 2010 +0200 Added Observed and Selectiv iterators over internal Structures of the World. commit 61ea5b9b2b106f510b81b3dc13ab775fcd191126 Author: Tillmann Crueger Date: Thu Jul 8 10:20:49 2010 +0200 Added a macro that allows locking observer from outside of the observer commit 77a57041dc97cf87e9319cb8d08b0533fc2078e5 Author: Tillmann Crueger Date: Thu Jul 8 10:32:55 2010 +0200 Removed unused VectorSet.cpp commit ba9f5bcda4dd421dcb79d4ccff0dc34cfc072a6e Merge: ed6dd86 b21cb9d Author: Frederik Heber Date: Wed Jul 7 19:27:39 2010 +0200 Merge branch 'TestSHBranch' of ../espack into stable Conflicts: AUTHORS COPYING Makefile.am README configure.ac ./test_sh.all was not in molecuilder subdirectory. Hence, i introduced it by hand again, cherry-picking commits from the ESPACK repo. commit b21cb9dbead4d40950777be4260bea1a6560f9b6 Author: Tillmann Crueger Date: Thu Jul 1 14:19:13 2010 +0200 Made the test directories more easily recognizeable commit 164262634c50f779da253ab0f003d5c821f1bb93 Author: Tillmann Crueger Date: Thu Jul 1 14:06:23 2010 +0200 FIX,IMPORTANT: Deletion of temporary directory was accidently commented out in test-script. Please clean all installation files in /tmp manually after applying this patch commit 720eb1347c9459a296ca45ee9390ee979b68a269 Author: Tillmann Crueger Date: Fri Jun 25 16:25:21 2010 +0200 Some more minor fixes for the script commit 56f4affd338750671dc419656459ea2c3d37a6f3 Author: Tillmann Crueger Date: Fri Jun 25 11:43:46 2010 +0200 Fixed minor bugs in the test script commit d78b15b859249e96893a56e47d7623ee67842891 Author: Tillmann Crueger Date: Thu Jun 24 13:24:49 2010 +0200 Added several options to test script commit d6f4d5d91de1096fca84d3031c3d9b394f4dbf5b Author: Tillmann Crueger Date: Fri Jun 18 10:28:16 2010 +0200 Made the test script do optimizations as well as compiling options commit a9b6d1f87def83ebab99d4665c004ad28a6851b4 Author: Tillmann Crueger Date: Wed Jun 16 12:13:08 2010 +0200 Added memory check to exhaustive check script commit 31aea27fa5f3161faa142b812687b96c547eac1e Author: Tillmann Crueger Date: Thu Jun 10 14:09:09 2010 +0200 Added script to do a full test of several compilation options at once. commit 4e10f5d3fadc22df7922e32755bde52849c4ba53 Merge: 5630bd7 192f6ec Author: Tillmann Crueger Date: Wed Jul 7 18:08:32 2010 +0200 Merge branch 'stable' into StructureRefactoring Conflicts: src/Actions/WorldAction/CenterOnEdgeAction.cpp src/Actions/WorldAction/ChangeBoxAction.cpp src/Actions/WorldAction/RepeatBoxAction.cpp src/Actions/WorldAction/ScaleBoxAction.cpp src/World.cpp src/boundary.cpp commit 5630bd7d92d4ee87e211f07ad39dcf77c488377e Author: Tillmann Crueger Date: Wed Jul 7 17:55:33 2010 +0200 Added Unittests for the matrix class commit 0eb2dcf976a53b98c2a52db8f6e98eb0cf0ac46d Author: Tillmann Crueger Date: Wed Jul 7 15:57:05 2010 +0200 Added comparison Operator to matrix class commit ed6dd86b06f1b9f08a9fcdad0c1f58b4685276e2 Author: Frederik Heber Date: Wed Jul 7 15:46:59 2010 +0200 FIX: newly parsed-in atoms should always end up in their own molecule - This is to make them addressable to further actions such as translations. commit 3dbb9d0898f6f18f42bd3d2c9f115ece51b8e6b6 Author: Tillmann Crueger Date: Wed Jul 7 15:11:46 2010 +0200 Added methods to matrix to create vectors for rows and columns commit 8e17d683057bcb99b7dfa0c1a4d6d4952428b9ad Author: Tillmann Crueger Date: Wed Jul 7 14:43:34 2010 +0200 Added VectorContent types that allow making vectors from views commit 5e8e02502f123714bbc9e2a6c6fa52a1eb3dc69f Author: Tillmann Crueger Date: Wed Jul 7 14:26:05 2010 +0200 Repaired broken NO_MEMDEBUG build-path commit 86cff86835bac81d60b4a25d08f3dacca7c0768c Author: Frederik Heber Date: Wed Jul 7 13:53:05 2010 +0200 InputAction now parses all possible formats, not only pcp. - new function FormatParserStorage::get() that checks on the suffix and calls the load() function of the respective specialized FormatParser. - InputAction changed such that ... - prefix and suffix are extracted. - FormatParserStorage::get() is used. - empty configs are handled, too. - FormatParserStorage::ParserSuffix changed, removed ".conf". - TESTFIX: renamed all files to diff accordingly: .conf.xyz -> .xyz, .conf.in -> .in - BUGFIX: xyz files were written without initial tab in front of comment, fix in ParserUnitTest necessary (i.e. a tab was missing there as we always write it now) - ChangeElementAction: now needs --atom-by-id and takes the element as argument commit 9d5ddfc3f05b89f53f393682e4d66e4fbca6401c Author: Tillmann Crueger Date: Wed Jul 7 13:51:34 2010 +0200 Added constructor and destructor to VectorContent struct commit 7e0a6d2fb595d035aa60737447d978c6fca615c9 Author: Tillmann Crueger Date: Wed Jul 7 13:35:49 2010 +0200 Re-Added test script to split up version of molecuilder commit 192f6eced29258ef080a11bcbb78fd9ff514a41a Author: Frederik Heber Date: Wed Jul 7 10:35:30 2010 +0200 FIX: Removed positional action "input". - BUG: This caused that input files were parsed twice when added with -i and in general is disfavoured now - CommandLineParser::scanforSequenceOfArguments() - removed default adding - CommandLineParser::Parse() - removed positional() for boost::program_options - TESTFIX: All test case calls had to be adapted, i.e. molecuilder test.conf -> molecuilder -i test.conf, but ran after this without glitch commit b540f3ef3547381772f90b51e2a9fcc31911a1df Author: Frederik Heber Date: Tue Jul 6 17:50:04 2010 +0200 changed validate() for VectorValue, parsing not 10. 10. 10. but "10., 10., 10." to allow for negative values. - i.e. we now parse a single string and tokenize it ourselves. - TESTFIX: alle test cases asking the user for vectors had to be changed accordingly. commit 62c3dde8462dc6657ada97afbcc616f271e3b4ad Author: Frederik Heber Date: Tue Jul 6 14:09:56 2010 +0200 Added m4 files containing AX_LANG_COMPILER_MS and AM_PATH_CPPUNIT to repository. - kudos to Ralf for pointing this out commit f8be39adf455d74b343b19e96922dd72ca70bac2 Author: Ralf Wildenhues Date: Tue Jul 6 13:44:44 2010 +0200 Fix .git-version rule. * src/Makefile.am ($(srcdir)/.git-version): Use correct path to toplevel .git directory. Use --dirty --always if available. commit 01a547dc748506bb626bf6114ac4da7889432486 Author: Ralf Wildenhues Date: Tue Jul 6 13:44:23 2010 +0200 Document Boost requirement. * README: Update. commit f2e50276f11817144b9f45619a50936f92d205cf Author: Frederik Heber Date: Mon Jul 5 19:36:30 2010 +0200 FIX: still wrong path given for tests/Tesselations/defs.in commit 42c6483aa1e292c862b15d969ea11942d02dd331 Author: Frederik Heber Date: Mon Jul 5 19:23:47 2010 +0200 BUGFIX: wrong absolute path was given instead of @srcdir@ in tests/Tesselations/defs.in commit 6ac15b415070ed53d242694d8c013f516030906e Author: Frederik Heber Date: Mon Jul 5 19:23:32 2010 +0200 Switched off ecut testrunner use by default. commit 361ba71e577fc2a51017d9da6c9b95f8c98d72d6 Author: Frederik Heber Date: Mon Jul 5 19:03:53 2010 +0200 Trailing whitespace in src/Actions/Makefile.am commit 013a1f1b464aa250a0352e60f738480eec5c8411 Author: Frederik Heber Date: Mon Jul 5 19:02:42 2010 +0200 config/*, INSTALL and COPYING have not been present in the repo. commit 2a374eb47a8c1eecd2cffeee96ad7530b3537554 Author: Frederik Heber Date: Sat Jul 3 16:02:50 2010 +0200 MEMFIX: AnalysisPairCorrelationAction::performCall() did not free LCList, TesselStruct and Actives - also Actives have not been used to re-set the ActiveFlag of all molecules. Signed-off-by: Frederik Heber commit c27778c8cf9d03d323711246738e105de9b3c9d4 Author: Frederik Heber Date: Sat Jul 3 15:24:25 2010 +0200 MEMFIXES: ListOfLocalAtoms in molecule::FragmentMolecule() was not free'd correctly. - FragmentationDepthFirstSearchAction::performCall() - uses now just ListOfAtoms, free'd and set to NULL in while loop - changed signature: FillBondStructureFromReference(), FillListOfLocalAtoms() do not get FragmentCounter and ListOfLocalAtoms is now atom** (i.e. directly the local list of this fragment not the global one) - MoleculeLeafClass::FillListOfLocalAtoms() - simplified a lot due to the above - no more removal of global list if this is the first fragment in MoleculeLeafClass::FillBondStructureFromReference(), MoleculeLeafClass::AssignKeySetsToFragment() - molecule::FragmentMolecule() - for one we just use ListOfAtoms and around AssignKeySetstoFragments() call we properly allocate, set each component to NULL and free it afterwards. NOTE: All of these lists and maps are hard to understand and make the code very confusing. It's really high time for refactoring. Signed-off-by: Frederik Heber commit 08d9595e524d41acb5f2556750f13de7c51c081e Author: Tillmann Crueger Date: Fri Jul 2 18:00:59 2010 +0200 removed GSL-Headers from tesselationhelpers.hpp commit 797126567f0200a7de1f47f3329b98a9732473dd Author: Tillmann Crueger Date: Fri Jul 2 17:58:53 2010 +0200 Removed two more unused functions commit 4178131c71823a6899287f00ea147f58b7024cd2 Author: Tillmann Crueger Date: Fri Jul 2 17:32:22 2010 +0200 Removed unused DetGet() method commit 04ef48e904a30674119f2715fc93ec9b9cfef49a Author: Tillmann Crueger Date: Fri Jul 2 17:29:21 2010 +0200 Made the GetSphere() function use matrix objects commit fee0794e90e50281a6f8a20468a8904a274cfd92 Author: Tillmann Crueger Date: Fri Jul 2 17:11:22 2010 +0200 Added a "forward declaration" of the gsl_matrix struct in file Matrix.hpp commit aafd7737af09b4111bf30cab050e67fa581a43c9 Author: Tillmann Crueger Date: Fri Jul 2 16:55:52 2010 +0200 Removed all inclusions of GSL-Headers from molecule.hpp commit 962d8d2f1a29043f5023988fb45bd1ed40afd4ff Author: Tillmann Crueger Date: Fri Jul 2 16:36:24 2010 +0200 Added forgotten inclusion of config.h in molecule.hpp commit d4103c803af56c6175c96bd982367a740bdb0307 Author: Tillmann Crueger Date: Fri Jul 2 16:33:32 2010 +0200 Removed opening of namespace from molecule.hpp commit c37386e2c7b2ed3696191aba5aba8faa85a21464 Author: Tillmann Crueger Date: Fri Jul 2 16:28:52 2010 +0200 Replaced several defines in Graph.hpp with typedefs commit ce3d2b318c5b1e070682a808827f927c7acb3335 Author: Tillmann Crueger Date: Fri Jul 2 15:45:20 2010 +0200 Added a "forward declaration" to the gsl_vector struct to avoid inclusion of the GSL-Headers in too many files - because the gsl structure does not allow for forward declarations a dumb object is used instead to simulate forwarding commit b9c8477258cb157c5302eaf6c3b8c3a846877820 Author: Frederik Heber Date: Fri Jul 2 15:44:23 2010 +0200 New SetOutputFormatsAction introduced. Fixes: - World::setDomain() is now OBSERVE'd and used to the set the domain. - FIX: CenterInBoxAction, CenterOnEdgeAction, ChangeBoxAction, RepeatBoxAction, ScaleBoxAction did not tell the World that is cell_size has been changed, now they call setDomain() new SetOutputFormatsAction: - new action SetOutputFormatsAction which instantiates various specializations of FormatParser in FormatParserStorage. - main(): mpqc, pcp and xyz and no more added by default to FormatParserStorage, this now has to be done by specifying them (e.g. on the command line as -o pcp mpqc xyz) - TESTFIXES: case 10,11,13,16,17,22 all failed due to the missing -o specification which has been added (this has been intended in this way from the very beginning of the ParseCommandLineOptions() refactoring) - action "convex-envelope" now more has ShortForm "-o" due to obvious reasons. commit 986ed31d916bf484692facd7d688db4be5d6021e Author: Tillmann Crueger Date: Fri Jul 2 15:19:32 2010 +0200 COMPILE_SPEEDUP: Replaced all implicit inclusions of iostream with forwards commit 36166d0baeb554d5194ca8550fe89d2ea46ca643 Author: Tillmann Crueger Date: Fri Jul 2 15:09:37 2010 +0200 Removed left over parts from old memory-tracker commit 4a611e3670a1f64878803f279635ff022e7471c1 Author: Frederik Heber Date: Fri Jul 2 15:07:29 2010 +0200 OutputAction written and used in TextWindow::TextWindow(). Signed-off-by: Frederik Heber commit cd8e55e569af57209f37ce90b3bf55ed71ad6d52 Author: Frederik Heber Date: Fri Jul 2 15:05:08 2010 +0200 New StringsQuery that returns space-separated vector of strings. Signed-off-by: Frederik Heber commit edb454f225715c8d558cd5602a7e4cca50e48a72 Author: Frederik Heber Date: Fri Jul 2 13:29:56 2010 +0200 MEMFIX: correlationmap was not free'd correctly in AnalysisPairCorrelationAction. - correlationmap pointer was instantiated before the ifs and inside, hence after them the wrong pointer (containing NULL) was free'd. - surfacemap (type == S) was not free'd at all. commit 5ec8e3b251db03ba84a62d656f8f84526948e941 Merge: 56fb093 7ac4af5 Author: Tillmann Crueger Date: Fri Jul 2 11:51:01 2010 +0200 Merge branch 'VectorRefactoring' into StructureRefactoring Conflicts: molecuilder/src/Makefile.am commit 7ac4af546aef569bad618c4f3e4286eafbb6a0dd Author: Tillmann Crueger Date: Fri Jul 2 11:36:29 2010 +0200 Added an optimized version of the Box::explode() method for n=1 commit a630fd7d23fa913ba7b568df0f81d926d3eebcfb Author: Tillmann Crueger Date: Fri Jul 2 11:28:10 2010 +0200 Made the Box::explode() method take an aditional parameters specifying the number of times the box is expanded commit abd8f73bcb2eb4148929715360644bedcefda2e6 Author: Tillmann Crueger Date: Fri Jul 2 11:12:10 2010 +0200 Added comments for Box class commit cd82eca885c252c6b2a0e0879409287a273993cf Author: Tillmann Crueger Date: Fri Jul 2 11:00:17 2010 +0200 Improved comments of matrix class commit 4563418550cbca164a52af1135e86656963869b2 Author: Tillmann Crueger Date: Thu Jul 1 16:57:02 2010 +0200 Moved all Exceptions and Matrix class from LinAlg module back to main module commit 4b94bb2ad3a7a76ccc9814a68fb93b49a65b1a64 Author: Tillmann Crueger Date: Thu Jul 1 16:48:50 2010 +0200 Moved Vector-Matrix operations to matrix class commit c550dde8f9a55abc5bb3d1e577f8d58c31313732 Author: Tillmann Crueger Date: Thu Jul 1 16:37:53 2010 +0200 Removed the VectorIsInParallelepiped in favor of more general methods in the Shape class commit bdc91e4bc61aad726bc471a78705e01522cc4998 Author: Frederik Heber Date: Thu Jul 1 16:26:41 2010 +0200 MEMFIXES: Tesselation routines were leaking memory. - FindConvexBorder() - new parameter *BoundartyPts and checks whether it has to GetBoundaryPoints() or not. - PrepareClustersInWater() - MEMFIX: TesselStruct not removed. - MEMFIX: GreatestDiameter not removed. - MEMFIX: LCList not removed. - MEMFIX: BoundaryPoints not removed. - GetDiametersOfCluster() uses calculated BoundaryPoints. - Tesselation::InsertStraddlingPoints() - MEMFIX: triangles not removed. - MEMFIX: Use Flag to avoid memory leak in case of early return. - BUGFIX: LinkedCell::GetNeighbourBounds() - returns wrong bounds if current cell is out of bounds and made unnecessary calculations. - FIX: made type conversion in divison explicit: molecule::CenterOrigin(), molecule::DetermineCenterOfAll(), molecule::DetermineCenterOfGravity() - Tesselation::FindStartingTriangle() - introduced map for wrapped coordinates axis - MEMFIX: TriangleIntersectionList::GatherIntersectionsWithTriangles() - used scoped_ptr to avoid memory loss of points Signed-off-by: Frederik Heber commit 205d9b8bb1f1bafa0def6c63eff6b932e15b7885 Author: Tillmann Crueger Date: Thu Jul 1 16:29:52 2010 +0200 Added missing const to Shape::isInside() method commit 5e588b597a4bec93c790fd6f6ceca487ee3773de Author: Tillmann Crueger Date: Thu Jul 1 16:24:25 2010 +0200 Added more Shape operations commit b5bf848c84bcb25c70cc7c0dc6b8e670d94b58d8 Author: Tillmann Crueger Date: Thu Jul 1 16:10:14 2010 +0200 Added a method that allows to scale all components of one vector with all components of another vector. commit 8f822caef9489cf5ff93568a90bb7abed9901aa8 Merge: 0d5dce8 0144756 Author: Tillmann Crueger Date: Thu Jul 1 15:55:08 2010 +0200 Merge branch 'VectorRefactoring' into Shapes commit 0144756049ef4f14261279d28c04e19261b9ff7d Author: Tillmann Crueger Date: Thu Jul 1 15:44:39 2010 +0200 Made all places use the periodicDistance() and periodicDistanceSquared() methods provided by the Box class commit 12cf773059b576c65583614e5aad329f0dd03dec Author: Tillmann Crueger Date: Thu Jul 1 14:44:37 2010 +0200 Added a define that makes the definition of VectorSets simpler commit 527de22f017bb0356fc8ca5a5ed766a9457f10bf Author: Tillmann Crueger Date: Wed Jun 30 18:46:53 2010 +0200 Added a function that allows to find the closest periodic point in a Box commit ec7f5cfe5b22f62e7d0d4560b9f1cdaeb2777856 Author: Tillmann Crueger Date: Wed Jun 30 18:17:56 2010 +0200 Added a method that allows the calculation of the minimum distance of a point to a set of vectors commit 89e820674b376e863e62be166bc14b6e8d248927 Author: Tillmann Crueger Date: Wed Jun 30 18:17:24 2010 +0200 Added a function that allows an expansion of a Point into its 27 periodic continuations commit f429d7fcd44499560286adf7dea1cac00249abce Author: Tillmann Crueger Date: Wed Jun 30 17:39:55 2010 +0200 Move Vector::WrapPeriodically to Box class commit 3dcb1fbe66c95e1473208ab3eefbd14acd66c2f9 Author: Tillmann Crueger Date: Wed Jun 30 16:45:38 2010 +0200 Added two functions to Box class to translate Vectors from Box-Space to normal space commit 6e00ddff3c4fbf233fa517f23431c7fd3ebae6c6 Author: Tillmann Crueger Date: Wed Jun 30 16:41:46 2010 +0200 Added check for symmetricity in Box::setM() commit ac272479ab593989831ae7d86c423844f00eb05a Author: Tillmann Crueger Date: Wed Jun 30 16:34:11 2010 +0200 FIX: RepeatBoxAction was using a reference to the Box size instead of a copy commit 082215113a5db70685f369e097f2087319b1ee7b Author: Tillmann Crueger Date: Wed Jun 30 16:03:43 2010 +0200 FIX: ScaleBoxAction did not set the new Box Matrix in the World commit 4907a3bc2ada49ac58ab09c7e207c9d34f641fd0 Author: Tillmann Crueger Date: Wed Jun 30 15:57:31 2010 +0200 TESTFIX: Repaired regression test that tried to produce a non-invertible matrix as cell size commit 84c494528bbd3943769972df639fbc01ec0bed4e Author: Tillmann Crueger Date: Wed Jun 30 15:55:42 2010 +0200 Made the world store the cell_size within a Box object. commit 9df5c6800ee6ef2b8e834cd973cc0c165a9587d6 Author: Tillmann Crueger Date: Wed Jun 30 14:20:34 2010 +0200 Made the Vector::IsInParallelepiped() method take a matrix instead of a double* commit 4b0cbb5d713a46a9aed2ab44377f403ca3acc743 Author: Tillmann Crueger Date: Wed Jun 30 12:47:06 2010 +0200 Made the Vector::PeriodicDistance() and Vector::PeriodicDistanceSquared() methods take Matrices instead of double * commit 7579a4bcbb167ec80ed46431296f3b57d98e4a9a Author: Tillmann Crueger Date: Wed Jun 30 12:21:12 2010 +0200 Added Copy constructor and Assignment operator to Box class commit 83c09a4128bfebd7dc93d3ef069901c9572ba4c6 Author: Tillmann Crueger Date: Wed Jun 30 11:42:58 2010 +0200 Added a basic Box class to store cell_size as well as inverse of cell_size commit c49c96b4713aa56687bee43886a27e6da84000b2 Author: Tillmann Crueger Date: Wed Jun 30 11:41:55 2010 +0200 Added an output function for matrices commit 1da5f598a5996a8d0b1d0291644c2ac185fe8f83 Author: Tillmann Crueger Date: Wed Jun 30 11:08:19 2010 +0200 Added method that allows fast construction of Unity matrices commit 5108e1ee1cf9c498299f8b2bf556d3a3275459c6 Author: Tillmann Crueger Date: Wed Jun 30 11:00:19 2010 +0200 Removed MatrixMultiplication() method from Vector class commit 56fb093e0167ef69ea5f8c9737745e22deff50ee Merge: 51a5c88 8e0c637 Author: Tillmann Crueger Date: Wed Jun 30 10:35:38 2010 +0200 Merge branch 'stable' into StructureRefactoring commit 8e0c63737339627f63c419ca95326da1336297c1 Author: Frederik Heber Date: Tue Jun 29 17:25:53 2010 +0200 MEMFIX: MatrixContainer::MatrixContainer() made some initial allocations that were simply overwritten afterwards and not free'd. - This probably originates from the removal of Malloc/Free. - TESTFIX: Molecules/5 now returns 0 and not 134 anymore. (but still BROKEN as it seems) Signed-off-by: Frederik Heber commit ef7d30483f1801e573483fe5210661e86dc379ad Author: Frederik Heber Date: Tue Jun 29 15:04:40 2010 +0200 MEMFIX: ForceMatrix in VelocityVerletIntegration had a stupid offset. - this offset is now generalized and needed as an additional parameter in TrajectoryParticle::VelocityVerletUpdate() and molecule::VerletForceIntegration() commit 52d777d1601f9030a5927fbca2ed90bfd50b5cbc Author: Frederik Heber Date: Tue Jun 29 12:43:09 2010 +0200 MEMFIX: molecule::CenterInBox() did not delete CenterBox vector returned by DetermineCenterOfBox(). Signed-off-by: Frederik Heber commit 5773a9de40d6fe1f3288879dc3301f45718866a4 Author: Frederik Heber Date: Tue Jun 29 12:32:32 2010 +0200 MEMFIX: PcpParser::StructOpt was not initialized in constructor. Signed-off-by: Frederik Heber commit 60239f18abcd9188cedaba56cf38cef8bfcb62ef Author: Frederik Heber Date: Tue Jun 29 12:25:54 2010 +0200 MEMFIX: output streams in FormatParserStorage::SaveAll() were not free'd Signed-off-by: Frederik Heber commit 11428f8ce2021ae66b5a6bfe2bf9edd3c49f49b4 Author: Frederik Heber Date: Tue Jun 29 10:59:19 2010 +0200 COMPILEFIX: using namespace std with std:: in the implementation and not in the definition confused compiler with "-O0 -DNDEBUG" I think that this is rather a compiler bug. The compilation failure was gone, after using namespace std; had been removed. Signed-off-by: Frederik Heber commit 24c35aafa08fa4ef2e58c5113ea202f3081ef5e2 Author: Frederik Heber Date: Tue Jun 29 10:59:01 2010 +0200 Removed unused variables. Signed-off-by: Frederik Heber commit cfa7957454d1a79e2551d4b5b5a743e2ba165c59 Author: Frederik Heber Date: Mon Jun 28 19:02:50 2010 +0200 GetCenterofCircumcircle(0 - Removed old calculation that is superceded by use of barycentric coordinates. Signed-off-by: Frederik Heber commit 13892b0f345f9589fbbc5c03efa50305466eea2c Merge: bdb1432 de8e451 Author: Frederik Heber Date: Mon Jun 28 18:53:51 2010 +0200 Merge branch 'UIElementsExplained' into stable commit 51a5c882321fa978a575883a8e26918f06508900 Merge: bdb1432 f0f1cc8 Author: Frederik Heber Date: Mon Jun 28 17:50:54 2010 +0200 Merge branch 'StructureRefactoring' of jupiter:espack into StructureRefactoring commit bdb143247eccc7c91b16ff0f4b58e8e1946856d2 Merge: b2531f5 c39cc4a Author: Frederik Heber Date: Mon Jun 28 16:53:18 2010 +0200 Merge branch 'StructureRefactoring' into stable Conflicts: molecuilder/src/analysis_bonds.cpp molecuilder/src/analysis_bonds.hpp molecuilder/src/builder.cpp molecuilder/src/unittests/Makefile.am molecuilder/src/unittests/TestRunnerMain.cpp - TESTFIX: Tesselations/heptan - Due to different implementations of GetCircumCenter() sequence of triangles nodes has changed in degenerate case - TESTFIX: Tesselation/1-3 - Due to convexity criterion fourth argument (i.e. the value at the node) has changed. Signed-off-by: Frederik Heber commit c39cc4a287829a1c0da6147754970a5045cfb269 Author: Frederik Heber Date: Mon Jun 28 10:04:25 2010 +0200 TestRunnerMain.cpp admonished missing TestRunner despite no HAVE_ECUT. Here, TestRunner files were included without checking for HAVE_ECUT define, when not given we use UnitTestMain.cpp. Signed-off-by: Frederik Heber commit b2531f58b99abea1c74e576621a963d2f22b369f Author: Frederik Heber Date: Sun Jun 27 01:55:00 2010 +0200 Introduced a MenuBar and Menus to the QT interface. - new map MapOfActions::MenuDescriptionMap which contains short and long descriptions of the menus. - MapOfActions::populateActions() - rotate-to-pas and suspend-in-water actions were missing. - QTMainWindow - QTMainWindow() - creates a MenuBar and QTMenus and fills them with the actions from the maps in MapOfActions. - new function populateMenu() - same as in TextWindow. - new function getSuitableShortForm() - same as in TextWindow. - TextWindow::TextWindow() - also makes use of the new map MenuDescriptionMap. - MoleculeSuspendInWaterAction - changed argument to density and molecule is obtained by molecule-by-id - TESTFIX: Molecule/8 had wrong argument for rotate-to-pas - TESTFIX: Filling/2 had missing molecule-by-id commit b0acc3a7b5b3ca40d4aa3940fd46ba4055624f89 Merge: b800215 326bbe4 Author: Frederik Heber Date: Sun Jun 27 00:14:22 2010 +0200 Merge branch 'stable' into QT4Refactoring Conflicts: molecuilder/src/Makefile.am - molecuilder/src/Makefile.am: No more present (in stable) Legacy was conflicting commit b800215c062e714dbeab7570ef2a6df003c54c1c Author: Frederik Heber Date: Sun Jun 27 00:13:24 2010 +0200 Menubar added to QTMainWindow. commit 01a51f94ff24a022319e8b9bb5f087c52d60443b Author: Frederik Heber Date: Sun Jun 27 00:12:38 2010 +0200 BUGFIX: variable molecules in QTWorldView used uninitialized. commit b6dbff660c2628bf17ab96e04ccc8cb543e3fb8a Author: Frederik Heber Date: Sun Jun 27 00:11:52 2010 +0200 BUGFIX: ax_check_glu.m4 has a bracket closed to early. - It was the reason why CXXFLAGS was set to "" and debugging was impossible. commit 4d206f76b42ca48e260cc39a9dcdaecaff8ec863 Author: Tillmann Crueger Date: Sat Jun 26 14:38:28 2010 +0200 Replaced Vector::PeriodicDistance() method with call to Vector::PeriodicDistanceSquared() commit a679d14665015795544b36884112591b171d0d36 Author: Tillmann Crueger Date: Sat Jun 26 14:35:18 2010 +0200 Replaced Matrix access with direct access at several places commit 436f0460fd2ba3e355fd4198fddee77f72a8f22d Author: Tillmann Crueger Date: Sat Jun 26 14:21:48 2010 +0200 Added a method that allows faster setting of matrix elements using direct access to the gsl_matrix_set() function commit e3ffd3712ea849a94d9158d455849fb72640c7fa Author: Tillmann Crueger Date: Sat Jun 26 14:12:50 2010 +0200 Added ASSERTions to test inidices for matrix access commit cadbc1fb3669b7855eee3fd6f30ff3fdfe118643 Author: Tillmann Crueger Date: Sat Jun 26 14:08:48 2010 +0200 Made the matrix class handle const correct commit 63d2b8b63768e631588dad2ca098054284d345b1 Author: Tillmann Crueger Date: Sat Jun 26 13:59:50 2010 +0200 Removed unused Vector::KeepPeriodic() method. commit d10eb6f3865b497d9398ecf46f86b0b565e82cd1 Author: Tillmann Crueger Date: Sat Jun 26 13:52:50 2010 +0200 Made the ReturnFullMatrixForSymmetric return a Matrix object directely instead of a double array commit f66b67ef25f8215db4696ae4d1b5f670050f9e30 Author: Tillmann Crueger Date: Sat Jun 26 13:40:12 2010 +0200 Removed InverseMatrix() function from helpers.cpp commit d0f1111bbe00c12da35e9d10566f6148b2bab529 Author: Tillmann Crueger Date: Sat Jun 26 13:33:17 2010 +0200 Changed Vector::WrapPeriodically to use matrixes instead of double* commit 2f1a7afd3dd955636f42122eb3485ffe4337ccbd Author: Tillmann Crueger Date: Sat Jun 26 13:17:50 2010 +0200 Removed Vector::InverseMatrixMultiplication() method commit c7b39aba0c5bbf0cd82e49fb3793c618e6374c7e Merge: 33d774f f0f1cc8 Author: Tillmann Crueger Date: Sat Jun 26 13:03:06 2010 +0200 Merge branch 'StructureRefactoring' into VectorRefactoring commit f0f1cc841801082b74fbe0a203cc8ebbbc78b481 Author: Tillmann Crueger Date: Sat Jun 26 13:01:57 2010 +0200 Simplified the #ifdef and #define structure in MemDebug.hpp commit daa5f1c954173ff3503ce39d99851286b9775f32 Author: Tillmann Crueger Date: Sat Jun 26 12:45:09 2010 +0200 Added forgotten include in TextWindow.hpp commit 33d774f89e3f2ad4459ea37163f2fa15abf35cac Merge: c94eeb0 0c5eeb4 Author: Tillmann Crueger Date: Fri Jun 25 17:54:48 2010 +0200 Merge branch 'StructureRefactoring' into VectorRefactoring Conflicts: molecuilder/src/Makefile.am commit c94eeb07a5a15f078d531c1d8ad2cffd9ba09b40 Author: Tillmann Crueger Date: Fri Jun 25 17:27:35 2010 +0200 Replaced several double* that were used as Matrixes with actuall matrix objects commit 0c5eeb409cae578bdec87b091364dde4c8b6940e Merge: 0d1ad00 326bbe4 Author: Tillmann Crueger Date: Fri Jun 25 16:27:26 2010 +0200 Merge branch 'stable' into StructureRefactoring commit 325390d0efa70ca974c1bc1c47244bd26c28bc39 Author: Tillmann Crueger Date: Fri Jun 25 12:52:58 2010 +0200 Started work on basic matrix class to be used with Vector class commit 326bbe40da9599dc046e0fdfe636d1742946e288 Author: Frederik Heber Date: Fri Jun 25 15:04:13 2010 +0200 Legacy/oldmenu is no more. - TextWindow::TextWindow() now properly uses the actions that have been created during the Refactoring of CommandLineUI. - removed TextWindow::populateEditMolecules() as there is a more general function now - new Textwindow::populateMenu() - populates the menu by looking at MapOfActions::MenuContainsActionMap. - new TextWindow::getSuitableShortForm() - educatedly guesses good key for action in menu. - Hence, Legacy/oldmenu.* is dropped from molecuilder/src/Makefile.am - new map MapOfActions::MenuContainsActionMap with menu names and all desired actions therein - new MapOfActions::populateActions() which instantiate all possible actions (moved over from CommandLineWindow) - DOCU: MapOfActions has full documentation explaining how to add new actions - main(): CommandLineUI is taken if at least argument it present, otherwise text menu. Still missing: - testsuite cases should work for both command line AND text menu (just add by calling with "< input", where input has all the user input needed) commit 923b6cca0028d3b4eea5fdb75a369201bd898f35 Author: Tillmann Crueger Date: Fri Jun 25 12:29:57 2010 +0200 Used BLAS support of GSL to calculate scalarProducts commit 93987b81a24d8a945d0ec25efb8896deadd85f28 Author: Tillmann Crueger Date: Fri Jun 25 12:17:22 2010 +0200 Made the Vector use more gsl-operations internally commit 04488addea09a3c04b3c0a81d5e47ff9959d5f70 Merge: ce4487e 0d1ad00 Author: Tillmann Crueger Date: Fri Jun 25 11:57:15 2010 +0200 Merge branch 'StructureRefactoring' into QT4Refactoring Conflicts: molecuilder/src/Makefile.am molecuilder/src/builder.cpp commit 0d1ad007b5dcf34ce5860802ca2d4a7cd5ebeebf Merge: 6d574a7 a356f2d Author: Tillmann Crueger Date: Fri Jun 25 11:42:28 2010 +0200 Merge branch 'stable' into StructureRefactoring Conflicts: molecuilder/src/World.cpp commit a356f2d04dbc5c43b28b20131421f2cee7cf693d Author: Frederik Heber Date: Fri Jun 25 10:31:18 2010 +0200 Cleaned up builder.cpp - ParseComandLineOptions() along with the already #ifdef 0'd functions removed from builder.cpp - DOCU: Rewrote introductory to Molecuilder. Signed-off-by: Frederik Heber commit 4f7f34ebe3887720f1827172d2ebad1e1c5ca8aa Author: Frederik Heber Date: Fri Jun 25 10:11:20 2010 +0200 ParseCommandLineOptions() is not used anymore. - new Actions InputAction and OutputAction. - ParseCommandLineOptions() is not called anymore in main(), instead all is handled by CommandLineUI - Creating first molecule and loading Bondgraph is done in main() - TESTFIX: boost::program_options returns 134 in case of missing argument, not 255 and also no more CRITICAL message is given: testsuite-standard_options and testsuite-simple_configurations commit d0fbecbcdc3487bcfb490f5e818f9b9b96b5f4d2 Author: Frederik Heber Date: Fri Jun 25 10:08:59 2010 +0200 Added const_iterator get[Begin\End]Iter() and ostream& operator << to ActionRegistry. commit 6d574a751346812745b54fae2e6cf3966d6e579e Author: Tillmann Crueger Date: Thu Jun 24 16:31:45 2010 +0200 Replaced several old-style asserts with more usable ASSERTs commit 906822f7830d141ace8f9b3ec266397f64fd05d7 Author: Tillmann Crueger Date: Thu Jun 24 15:21:26 2010 +0200 Removed forgotten debug message commit 7a176b4f26d1366174c839d048828e1641fdbc5c Author: Tillmann Crueger Date: Thu Jun 24 14:33:24 2010 +0200 Repaired ObserverUnittest for -DNDEBUG build mode commit ce4487e287996b6b95f3542d631d6a770fb44ba4 Merge: 9f3b85c da3024e Author: Tillmann Crueger Date: Thu Jun 24 12:33:22 2010 +0200 Merge branch 'MenuRefactoring' into QT4Refactoring commit 0d5dce8ae3af20bb3bf02caa0d122f24e7e0b9f4 Merge: f932b7b da3024e Author: Tillmann Crueger Date: Thu Jun 24 12:20:24 2010 +0200 Merge branch 'StructureRefactoring' into Shapes commit 35b6985cb4b968c855916ec0ced6e74b690ac7b1 Author: Frederik Heber Date: Wed Jun 23 17:20:35 2010 +0200 BIG CHANGE: config::load and config::save in ParseCommandLineOptions() and main() replaced with FormatParser replacements. Fragmentation: - FragmentMolecule() - configuration is not needed anymore, but a path (including prefix) - class molecule: - lots of changes from char * to std:string (due to above): LinearInterpolationBetweenConfiguration(), CheckOrderAtSite(), StoreBondsToFile(), StoreAdjacencyToFile(), CheckAdjacencyFileAgainstMolecule(), CheckAdjacencyFileAgainstMolecule_Init(), ParseOrderAtSiteFromFile(), StoreOrderAtSiteFile(), StoreForcesFile(), ScanAdaptiveFileIntoMap(), StoreForcesFile(), AddHydrogenCorrection(), OutputConfigForListOfFragments() - in all above functions, also stringstreams have been replaced by simple strings and file != NULL by file.good() - no more CalculateOrbitals(), shifted to class PcpParser - FragmentationAction: argument of -f is now the prefix, molecule is obtained by molecule-by-id - no more strcpy needed in: MoleculeLinearInterpolationofTrajectoriesAction, MoleculeSaveAdjacencyAction, MoleculeSaveBondsAction - oldmenu::FragmentAtoms() - needs to ask for path with prefix now - config: RetrieveConfigPathAndName() and configpath removed (replaced by above path with prefix) - changes due to this removal: SaveConfig(), config::Load(), config::LoadOld() - FIX: MoleculeFillWithMoleculeAction: filler atoms have to be removed before the system can be stored to file. - FIX: PcpParser::load() - has to put the molecule also into World's MoleculeListClass (otherwise the name cannot be set right after loading) - ParseCommandLineOptions() - new parameter BondGraphFileName and creation of bond graph is done in main() - no more config::load, just parser->load(), ConfigFileName is set extra and we always set configPresent to present. - FIX: filename is only set when no molecule was allocated before - FIX: case 't' and 'f' had wrong argc checks - main() - FormatParserStorage is set with mpqc, pcp and xyz - BondGraph is constructed from new string BondGrapghFileName - new Libparser.a - all sources from PARSER subdir are compiled into libparser such that only ParserUnitTest is recompiled. Testfixes: - testsuite-fragmentation - changes to due to different -f calling syntax. - most of the xyz files had to be replaced due to a single whitespace at the end of each entry: Domain/6, Simple_configuration/2, Simple_configuration/3, Simple_configuration/4, Simple_configuration/5, Simple_configuration/8 - in many cases were the number orbitals (and thus MaxMinStopStep) wrong: Filling/1, Simple_configuration/4, Simple_configuration/5 Signed-off-by: Frederik Heber commit dc0d21a1aefd1ba76a3deb4c8d9439ef512260f4 Author: Frederik Heber Date: Wed Jun 23 12:35:25 2010 +0200 FIXes to FormatParserStorage. - renamed Add..() to add..() - new functions get which return a reference to the (in absence instantiated) parser. - FIX: add..() did not set ParserPresent. - increment operator for enum ParserTypes was implemented in .hpp not .cpp and hence occured multiple times. commit df481f901d0d4c8cc3a41e10aa64882c27d2778b Author: Frederik Heber Date: Wed Jun 23 10:51:33 2010 +0200 BUGFIX: XyzParser::save() - substr needs to be (0, pos), not just (pos). Signed-off-by: Frederik Heber commit 2fd80b56d5b7d29736198f4a8490428ffd019e9f Author: Frederik Heber Date: Tue Jun 22 17:33:06 2010 +0200 FIXES: ParserUnitTest was broken - XyzParser: ctime returns endline, has to be cut away as variable comment is without. - TESTFIX: ParserUnitTest had 0.00000 instead of 0 (noshowpoint is in action). - TESTFIX: MpqcParser: due to newly used center, ParserUnitTest had wrong coordinates. - PcpParser::CalculateOrbitals() - used Valence instead of NoValenceOrbitals - PcpParser::Load() - PsiType changes parsing of PsiMaxNoUp/Down in place for MaxPsiDouble, but the others should be parsed optionally to ensure the taking over of the values if present. - BUGFIX: MpqcParser::MpqcParser() - HessianPresent was not initialized, causing failures when ParserUnitTest is run with gdb and none without commit 52baf9e6c40a11d21dbc723f3b31eca45daef2f5 Author: Frederik Heber Date: Tue Jun 22 16:09:14 2010 +0200 new class FormatParserStorage takes care of allocation, uniqueness and de-allocation. This is necessary as otherwise ofstream have to be given to each Parser on instantiation. I.e. files are written over at the start of the program. Critical exits will thus results in empty files. - new class FormatParserStorage: - singleton - contains a vector of all possible parsers - allows for a common naming with a prefix - SaveAll() can be used at the end of the program - TremoloParser::TremoloParser() - default usedFields has all keys from knownKeys. - FIX: TremoloParser::parseAtomDataKeysLine() - added clear for usedFields such that the function can be called more than once. commit 4ac1aa6e568bca366690efdb5d300829725129b8 Author: Frederik Heber Date: Tue Jun 22 11:33:48 2010 +0200 Removed two unused variables. commit 650ca8cc5cd79b7bdc9e6dccdeb2e2d235d94356 Author: Frederik Heber Date: Tue Jun 22 11:30:03 2010 +0200 FIX: PcpParser had wrong default values for testsuite cases, number orbitals are wrong, no defaults for NULL strings. - Variables in paths are all NULL as default, this has to be caught on output and default values given. - some default values were not consistent with testsuite cases (Simple_configuration/2). - PcpParser::save() - removed some commented-out sections. - new function PcpParser::CalculateOrbitals() - transfered from class molecule, acting now on vector. - BUGFIX: PcpParser::OutputAtoms() - wrong index for ZtoCountMap used. commit 1434c98f6218169a6a495cedbaf97beec43ca83d Author: Frederik Heber Date: Tue Jun 22 11:29:01 2010 +0200 FIX: XyzParser needed comment and correctly formatted numbers to pass testsuite cases. - if comment is empty, we set it to "Create by moleculder" with date - numbers are formated by noshowpoint commit d6b8e155f9cafd168e638fb519c9e3f72657177f Author: Frederik Heber Date: Tue Jun 22 11:24:54 2010 +0200 FIX: center calculation was missing in order to pass testsuite cases. commit d3dff06e8fff78fceae7c93eb68106e91329b667 Merge: a1e9297 f34c238 Author: Frederik Heber Date: Mon Jun 21 16:07:25 2010 +0200 Merge branch 'stable' into PcpAndMpqcParser commit f34c238ce5cc901d49c2b7d96c15786b1d2d390d Author: Frederik Heber Date: Mon Jun 21 16:04:36 2010 +0200 MEMFIX: Periodentafel constructor would instantiate stringstreams in database load calls but not remove them. commit 61b5f07893ccd22d60b3aed36aa1152a08528f2a Author: Frederik Heber Date: Mon Jun 21 15:46:42 2010 +0200 MEMFIX: When periodentafel::LoadElementsDatabase() is called again, new element is copied into old one, but not removed afterwards. commit a1e929783e7c845e1b7c256a42d24ecf7f449c2d Author: Frederik Heber Date: Mon Jun 21 15:07:58 2010 +0200 Case 'p' is now handled by CommandLineUI. - ~XyzParser() did destroy falsely its own comment. - TremoloParser and XyzParser used include with Parser path. - ParserLoadXyzAction: - corrected NAME. - uses XyzParser and adds all new atoms to the first present molecule. - CommandLineWindow::display() - now states when action is launched or found absent. - builder.cpp: cleanup() - purges ChangeTracker - ParseCommandLineOptions() - sets configPresent to present without check (as parsing is done afterwards, but arguments of other cases will be thrown away in case of empty world) commit 2f40c0ec191fde0edba78d75107fffb1ecd2edbe Author: Frederik Heber Date: Mon Jun 21 14:56:35 2010 +0200 ChangeTracker now uses the Singleton pattern. - ChangeTracker is now using Patterns/Singleton[_impl].hpp - ParserUnitTest then has to destroy the Tracker explicitely and before World is purged! commit 55240c456666db3cd70a6e0f1825c1af25cd9e70 Merge: 1b2d30e da3024e Author: Frederik Heber Date: Mon Jun 21 09:56:00 2010 +0200 Merge branch 'stable' into PcpAndMpqcParser Conflicts: molecuilder/src/Makefile.am - a single space after a "\" commit a7c3445deee89b704b2f94ca3ceacb70d02e389e Merge: b32dbbf 27ac00c Author: Frederik Heber Date: Sat Jun 19 18:06:59 2010 +0200 Merge branch 'StructureRefactoring' of jupiter:espack into StructureRefactoring commit da3024e9900eac30b2cab75bedab6250961eb4f3 Author: Frederik Heber Date: Sat Jun 19 17:58:32 2010 +0200 Fixed various compiler warnings. - Process::Process() - Action and Observer in wrong order. - WorldRepeatBoxAction::performCall() - parenthesis missing. - builder.cpp: SaveConfig() removed by extending #endif, function is not used. - ParseCommandLineOptions() - unused variables removed. - main() - unused variables removed. commit bf0edf6cc675dc6b4fcb371e999060afd9323b60 Author: Frederik Heber Date: Sat Jun 19 17:58:01 2010 +0200 Added Searchengine to generated doxygen documentation. I.e. One has now a little search text field up and right, where one can enter function names or others and obtains links to their explanatory pages. I think this is helpful as the whole code has grown quite a lot recently. Signed-off-by: Frederik Heber commit 274d45ac1a71ab65f0579050d6a972f174caf5e2 Author: Frederik Heber Date: Sat Jun 19 14:35:01 2010 +0200 FIX: Atoms were stored not in the sequence they were loaded. 1. The main problem is molecule::atomSet which is a set, i.e. atoms are sorted by their appearance in memory. As memory need not be allocated sequentially, this gives rise to extreme arbitririty which is not desired. Instead the atoms should be stored in the sequence they were loaded/created. The solution is as follows: - config::SaveAll() - uses SimpleMultiMerge() instead of SimpleMultiAdd(). I.e. no atoms are copied (with new ids) but are relinked into a single molecule. - also, in case of only a single molecule in the list, we don't merge anything to avoid mol id changes. - MaxMinSteps were set according to MaxPsiDouble overriding correct results from molecule::CalculateOrbitals() - molecule::atomSet is now a list - molecule::atomIds is a new set (atomIdSet) which controls that (global) ids remain unique in the no more Atomset's set (but list) - molecule::erase() erases also in atomIds - molecule::insert() checks whether id is present by atomIds - molecule::find() as std::list does not have a find, we just go through the list until the object is found (or not), this may be speeded up by another internal list. - molecule::InternalPointer made lots of confusion as virtual function GoToFirst() is const, hence begin() (needed therein) returns const_iterator, which then cannot be simply re-cast into an iterator: We make it a pointer, reinterpret_cast the pointer and reference it back. Although InternalPointer is mutable, the compiler cannot use the non-const function begin() (it cannot be made const, as overloading is not allowed). (this is noted in the code also extensively.) - molecule::containsAtom() does not use count but the new find, as it returns only boolean anyway. - rewrote MoleculeListClass::SimpleMerge() to get rid of the extra iterator, as we remove all atoms in the end anyway. - FIX: MoleculeListClass::SimpleMultiMerge() - the created mol was not inserted into the moleculelist in the end, although it is the only one to remain. 2. All other databases had missing headers with respect to those stored in elements_db.cpp. Hence, valence of hydrogen was not parsed and this caused several failures in CalculateOrbitals() (Psi numbers and MaxMinSetp in pcp conf file). 3. Subsequenytly, various test cases (12, 21, 30, 31, 36-38, 39) were broken. This had two reasons: - Seemingly, CalculateOrbitals() was broken before hence MaxMinStep (pcp config) and MaxPsiDouble/PsiMaxNn[Up|Down] were always 0. (10-21,30-31,39) - As the order is now correct, fixes from commits c9217161ec2a5d5db508557fe98a32068461f45b and 22a6da8380911571debebd69444d2615450bbbd8 were obselete and have been reverted (order of the Ion?_Type...): Molecules/6 (30), Molecules/7 (31), Filling/1 (39) - Due to different ordering, Tesselation/3 (38) had completely different .dat file (though same tesselation) - r3d had small differences, mostly order or epsilon (0 not being 0 but ..-e16), hence diffing was deactivated, as r3d is deprecated anyway (since vmd can render triangles as well and better). Signed-off-by: Frederik Heber commit ad2b411bce1e0560ebf2e3ba6134e4b38b4681ea Author: Frederik Heber Date: Sat Jun 19 14:13:45 2010 +0200 atom::getId() should be a const function as it changes nothing in the class. Signed-off-by: Frederik Heber commit f2cefdb2905d750f0ec25e01b28d6ca3d82fe2a7 Author: Frederik Heber Date: Sat Jun 19 14:10:47 2010 +0200 FIX: ObservedIterator::operator--() (prefix) was missing return statement. Signed-off-by: Frederik Heber commit f932b7b1786c6ff2283e1fed18917476a226e500 Author: Tillmann Crueger Date: Fri Jun 18 16:40:02 2010 +0200 Added a method to calculate the intersection of a line with the unit sphere commit 394529331b65caadbef479aaeeaa1e16ed50a188 Author: Tillmann Crueger Date: Fri Jun 18 12:46:57 2010 +0200 Added small sanity check to the arguments of Resize_impl commit e09b70d7a588dbbff293dc4d06351cffd07f187a Author: Tillmann Crueger Date: Fri Jun 18 12:44:04 2010 +0200 Added basic operations on shapes commit e38447444304566cccc4a9f79d61ec95482b450b Author: Tillmann Crueger Date: Fri Jun 18 12:18:10 2010 +0200 Added some basic shapes to the shape framework commit 997784156d1dc26d2ac261687508df7c71e2a7b7 Author: Tillmann Crueger Date: Fri Jun 18 12:03:23 2010 +0200 Added basic structure for definition of geometric 3D shapes. commit 9f3b85ca21f1768f8726e03a5aba27f042618333 Merge: b47bfce d386e85 Author: Tillmann Crueger Date: Thu Jun 17 17:24:24 2010 +0200 Merge branch 'stable' into QT4Refactoring commit b47bfce85c995a562a7a73f752c8e74cc40cc9de Author: Tillmann Crueger Date: Thu Jun 17 17:23:53 2010 +0200 Added forgotten files in previous commit commit d386e85d6e0aa4e0e8ea9ee687510515e0592c35 Merge: 1dc9ece cb16fe0 Author: Tillmann Crueger Date: Thu Jun 17 17:12:54 2010 +0200 Merge branch 'VectorSetMixin' into stable commit 1dc9ece817dde18f1ddda86a6a9bf1ceed029ec3 Merge: 5f5a7be 0c7ed86 Author: Tillmann Crueger Date: Thu Jun 17 17:09:22 2010 +0200 Merge branch 'VectorRefactoring' into stable Conflicts: molecuilder/src/vector.cpp commit 257c77c0c7706fd4745edd8fffdb365d94c06777 Merge: 992fd78 5f5a7be Author: Tillmann Crueger Date: Thu Jun 17 16:55:56 2010 +0200 Merge branch 'stable' into QT4Refactoring Conflicts: molecuilder/src/Actions/TesselationAction/ConvexEnvelopeAction.hpp molecuilder/src/Helpers/MemDebug.hpp molecuilder/src/Makefile.am molecuilder/src/UIElements/Dialog.cpp molecuilder/src/UIElements/MainWindow.cpp molecuilder/src/UIElements/TextUI/TextUIFactory.cpp molecuilder/src/builder.cpp commit 5f5a7be8b7a95cd7fe35e9d728b89d6bc36b2f6a Merge: fc60537 190326d Author: Tillmann Crueger Date: Thu Jun 17 14:56:48 2010 +0200 Merge branch 'MenuRefactoring' into stable Conflicts: molecuilder/src/UIElements/TextUIFactory.cpp molecuilder/src/UIElements/UIFactory.cpp molecuilder/src/UIElements/UIFactory.hpp molecuilder/src/builder.cpp commit fc60537725dce1fccdbfab4a892a9fb6d37d5f8c Author: Tillmann Crueger Date: Thu Jun 17 14:25:43 2010 +0200 Made the complete MemDebug file conditional, to speed up compilation commit 4922793995be9d95cb066183ffb6f6bd1f01af1f Author: Tillmann Crueger Date: Thu Jun 17 13:55:29 2010 +0200 FIX: Repaired MemDebug to use safe (C-Style) pthread-mutexes instead of object oriented boost::thread::mutexes commit e6317b4b368fa20de1aaa2983bd1421caecd6287 Merge: f8e4867 980dd65 Author: Tillmann Crueger Date: Wed Jun 16 14:24:21 2010 +0200 Broken: Merge commit 'Gitosis/stable' into stable Conflicts: molecuilder/src/Actions/AnalysisAction/PairCorrelationToPointAction.cpp molecuilder/src/Actions/AnalysisAction/PairCorrelationToSurfaceAction.cpp molecuilder/src/Makefile.am commit 1b2d30e4f20f9cf99960f0856222c0470911beec Author: Frederik Heber Date: Sat Jun 12 23:59:36 2010 +0200 Extended PcpParser, completed MpqcParser. - BUGFIX: ConfigFileBuffer::InitFileBuffer() did not clear istream before re-use. - class PcpParser - operator== - compares every variable by ASSERTs. - constructor initializes variables all to sensible values. - class MpqcParser - new function save() - calls either SaveHessian() or Save() according to flag HessianPresent. - new functions SaveHessian() and Save() which contain both parts of config::SaveMPQC(). - no function load() - this functionality has not been present and is not needed right away. - Extended ParserUnitTest - new test case readwritePcpTest() - load from static string, store, load again and compare both. - new test case writeMpqcTest() - write a state of the world and compare to one from static string. - all static strings have been made static and set before all functions. - new string containing an example pcp config file. - we check whether hydrogen and oxygen are known to the world as we test with these two elements. - atom::OutputMPQCLine() - now takes ostream instead of ofstream. - config::SaveMPQC() - adapted accordingly (cast is necessary) commit 43dad65dfe7e2b0ebca47285b180df260a3dfd9c Author: Frederik Heber Date: Sat Jun 12 17:54:26 2010 +0200 Introducing (but not yet incorporated) FormatParser specializations for MPQC and PCP config files. - new modules MpqcParser.[ch]pp and PcpParser.[ch]pp. - class MpqcParser: - just a skeleton so far - class PcpParser: - load and save basically adapted from config::Load and config::Save. - new functions OutputAtoms() and OutputElements() from molecule::Output() and molecule::CheckOut(). - ne function ParseThermostats() - as the parsing is specific to the format it should be handled by the FormatParser, not bz ThermoStatContainer. - most of the variables from config placed into struct to put them into groups (for later splitting up load&save into subfunctions). - new overload ConfigFileBuffer::InitFileBuffer() accepting streams (FormatParser works on streams, config still with filenames). - World: new member Thermostats which contains all thermostat parameters with getter function. - ThermoStatContainer::ParseThermostats() moved over to PcpParser and re-introduced in config. - atom::OutputArrayIndexed() now works on ostream, not ofstream. - molecule::Output() adapted to ostream change. commit a3fded485f7f96b3a75bd175b6c7cdda9af47a7a Author: Frederik Heber Date: Sat Jun 12 15:05:12 2010 +0200 New class ThermoStatContainer containing all parameters and changes to ConfigFileBuffer. - include "bondgraph.hpp" replaced by forward declaration - Hence, include missing in the following files: BondLengthTableAction.cpp, DepthFirstSearchAction.cpp, FragmentationAction.cpp, moleculelist.cpp, config.cpp - ConfigFileBuffer changes: - new functions: Init/RemoveMapping(), InitFileBuffer() and RemoveBuffer() - new flag: MapAllocated states whether LineMapping is allocated - new class ThermoStatContainer: - gets InitThermostats() and ParseThermostats() from config.cpp - all thermostat-related parameters moved from config thereto - TrajectoryParticle(), config::Load() and molecule:Thermostats() adapted due to new Thermostats container. - define MaxThermostats and enum thermostats moved from molecule.hpp to declaration of ThermoStatContainer commit 88104f086073b22665cda040c1703bc0f50a7de1 Author: Frederik Heber Date: Sat Jun 12 13:12:20 2010 +0200 Placed class ConfigFileBuffer into its own module. - this is a first step in clearing up config.[ch]pp and implementing PcpParser. commit 980dd655b657aeb3ce3173a95b5ac1122b2f7062 Author: Frederik Heber Date: Fri Jun 11 21:41:45 2010 +0200 Case 'N' is now handled by CommandLineUI. - TESTFIX: Tesselation/1 and Tesselation/3 molecuilder calls have been changed. - TESTFIX: Tesselation/defs.in call of molecuilder has been changed. commit f6bd32663ea9fa338315b53ec627587c5be08a37 Author: Frederik Heber Date: Fri Jun 11 21:22:37 2010 +0200 Case 'o' is now handled by CommandLineUI. - As of now, multiple "--offset" do not work. Hence, we invented new --convex-file and --nonconvex-file. commit f8e48676b87bf0f42739924444d277b2d0744db3 Author: Tillmann Crueger Date: Fri Jun 11 18:01:49 2010 +0200 Repaired compilation with -DNO_CACHING option commit 6866aa7c49cdc09ce8a84ee021aa65f313e82887 Author: Frederik Heber Date: Fri Jun 11 17:59:53 2010 +0200 Case 'I' is now handled by CommandLineUI. commit a802418d734a3ae0fa779a318ce2fc35ae74868d Author: Tillmann Crueger Date: Fri Jun 11 17:53:52 2010 +0200 Made the atoms remove all their bonds upon destruction commit a307afaf868689418b2f1803da4afde3c8e01e78 Author: Frederik Heber Date: Fri Jun 11 17:52:44 2010 +0200 Case 'S' is now handled by CommandLineUI. commit a024627b6670da09d98bfc67ad4d3d28393f939c Author: Frederik Heber Date: Fri Jun 11 17:48:32 2010 +0200 Case 'L' is now handled by CommandLineUI. commit 6cfa368945b3056d4735abf7d3286f8d7a07aa72 Author: Tillmann Crueger Date: Fri Jun 11 17:41:41 2010 +0200 Made atoms remove themselves from molecules upon destruction commit aacce839dff40761d1bbe945e9724e91fa2b50ea Author: Frederik Heber Date: Fri Jun 11 17:27:20 2010 +0200 Case 'P' is now handled by CommandLineUI. - TESTFIX: "--molecule-by-id 0" added to test call. commit 77b2d7c74ef5d3d1f96600b9768c905b445340ac Author: Frederik Heber Date: Fri Jun 11 17:21:51 2010 +0200 Cases 't' and 'T' are now handled by CommandLineUI. - TESTFIX: both cases have "--molecule-by-id 0 --periodic 0/1" added. - ParseCommandLineOptions()- case 'T' removed as is handled by --periodic switch. - added missing Action instantiation to CommandLineWindow::populateMoleculeActions(). commit e2b47c937167a3e72fb72e019f375a4bbd32d280 Author: Frederik Heber Date: Fri Jun 11 17:07:11 2010 +0200 Case 'R' is now handled by CommandLineUI. - again, for each atom to remove all molecules are gone through and it is tried to be erased (due to storing done molecule- not atom-wise) - TESTFIX: "--position" introduced commit 9d2a9276f94fe257f7259e9ad59fcd484a8722c2 Author: Frederik Heber Date: Fri Jun 11 16:49:15 2010 +0200 ParseCommandLineOptions() - re-added removed argument count checking in cases to make new notation of action calls clearer. commit f4bd01c2def3fb661cc9b90940415de28b290f9b Author: Frederik Heber Date: Fri Jun 11 16:38:34 2010 +0200 Case 'A' is now handled by CommandLineUI. - TESTFIX: "--molecule-by-id 0" added to test call. commit d55743edc4142644288d8bf9343d19ea95e5c454 Author: Frederik Heber Date: Fri Jun 11 16:37:51 2010 +0200 Case 'r' is now handled by CommandLineUI. commit 77de817d0562d36c9416af818dbfc17a59a68a99 Author: Frederik Heber Date: Fri Jun 11 16:18:22 2010 +0200 Cases 'J' and 'j' are now handled by CommandLineUI. - TESTFIX: "--molecule-by-id 0" added to calls. commit 54b95350c635ef205ff520b17801e884164b717f Author: Frederik Heber Date: Fri Jun 11 12:39:39 2010 +0200 Case 'E' is now handled by CommandLineUI. - TESTFIX: --element is required now. commit f0a3ec30883f7671a6d9b42f3fef781efea8f232 Author: Frederik Heber Date: Fri Jun 11 12:22:45 2010 +0200 Case 'a' is now handled by CommandLineUI. - NOTE: atom has still to be added to a molecule to get saved in the end, this is fixed with new parser and should be corrected then (TODO is in the code) - TESTFIX: Scanning for "Not enough or invalid" for invalid commands test cases has been replaced by just "Not enough" commit 6c7352cd441286633d02a559a31f6b99a0e2658f Author: Frederik Heber Date: Fri Jun 11 11:40:23 2010 +0200 Removed commented-out LoadPeriodentafel() and (second) LoadBondLengthTable() parts from ParseCommandLineOptions(). commit 387b36d5638a57ee36515af008ca45c020f7a49f Author: Frederik Heber Date: Fri Jun 11 11:36:09 2010 +0200 Case 'X' is now handled by CommandLineUI, World::get/setDefaultName() operate on std:string not on char * anymore. - the char array is very fault-prone and is deprecated. Hence, replacement by std::string is good idea in any case. - Here, setDefaultName deleted and re-allocated the pointer with a certain length. Good for memory, bad for safety. - molecule::molecule() - changes due to the above. commit f821d64e8528cffecaf27ded1ba9fa8fce0cb4e5 Author: Frederik Heber Date: Fri Jun 11 10:44:25 2010 +0200 Case 'n' is now handled by CommandLineUI. - TESTFIX: fastparsing switch now has a parameter (0/1). This is due to queryEmpty being designed for messages only, fastparsing instead has a default value of 0. commit bdaacd8efe6f6b9ef2489b1334a0503013b89d42 Author: Frederik Heber Date: Thu Jun 10 18:46:07 2010 +0200 Case 'M' is now handled by CommandLineUI. commit 48c338b962fc8c9728af30644409aeeabaea8a7d Merge: 39af9fc 0bcd11d Author: Frederik Heber Date: Fri Jun 11 12:44:46 2010 +0200 Merge branch 'FixTestSuiteMaxOrderFail2' into stable commit 0bcd11dd8367158918c04ef1c4dda2a7559fc49f Author: Frederik Heber Date: Fri Jun 11 12:43:16 2010 +0200 TESTFIX: Deactivated check of return code for MaxOrder, is declared BROKEN anyway. commit 756b5318facc694e4cc281e7d9b72ff50dc8c0f9 Author: Frederik Heber Date: Thu Jun 10 18:25:42 2010 +0200 TESTFIX: Fragmentation/3 is set to BROKEN. - somehow sequence of atoms is mixed about in each call and thus adjacencies are never the same. - this bug should be mentioned, hence set test case to BROKEN and have remark why close-by. commit 39af9fcd84261dabd6be575928275dd216d89fc2 Author: Frederik Heber Date: Thu Jun 10 18:24:24 2010 +0200 Case 'g' is now handled by CommandLineUI. commit 198494d9bdb96377e7d421a1ab096e7cec9ef909 Author: Frederik Heber Date: Thu Jun 10 18:20:36 2010 +0200 Case 'e' is now handled by CommandLineUI. - BUGFIX: ElementDbAction did copy databasepath not when dialog was finished but before. commit 61745ccc38dc041f5dfcbdd3771f3ac5c9c786cf Author: Frederik Heber Date: Thu Jun 10 18:17:22 2010 +0200 BUGFIX: LoadPeriodentafel() did not close files and elements have to be replaced in-place. - LoadPeriodentafel() - input file was never closed or cleared. - LoadPeriodentafel() - new element in case of presence of same-Z, deleted the old one and installed a new one. However, atoms::type knows nothing about this change! Has to be done in-place. - LoadPeriodentafel() - insertion is now tested with ASSERT - periodentafel::RemoveElement() now return number of removed elements (good for ASSERT checks) commit 7e6b008345766c6fe1944b6cb57c2847aa592191 Author: Frederik Heber Date: Thu Jun 10 18:13:23 2010 +0200 FIX: Sequence of actions called from command line is now corrected. - MapOfActions: new function getShortFormToActionMap() which gives the inverse of the ShortFormMap. - CommandLineParser: new function scanforSequenceOfArguments() added to Run() which: - goes through the arguments - picks out the command - if prefixed by "-" uses the map to look up the actionname, for "--" the name is the command. - main(): creates the map by calling getShortFormToActionMap() and handing over to CommandLineParser::Run() commit 623e89168dc407fe77c5dbbf192859477cae91d7 Author: Frederik Heber Date: Thu Jun 10 18:05:53 2010 +0200 Compilation took ages because of CommandLineParser.hpp being unnecessarily included in every action. - it was actually needed in HelperAction.cpp and copy&pasted itself from there into almost all others. commit 6d6b5491705c9d7eaf181c02b89e656d2ad2ae18 Author: Tillmann Crueger Date: Thu Jun 10 17:10:19 2010 +0200 Made the memory-tracker output the function from which it was called. commit 112b090c14e4507fb9dde0a3a340b9a3d61823ba Author: Tillmann Crueger Date: Thu Jun 10 15:11:28 2010 +0200 Added #include "Helpers/MemDebug.hpp" to all .cpp files commit 2b5574e2ed38f6d3582dab8cd70d735f7f0a370b Author: Frederik Heber Date: Wed Jun 9 17:05:22 2010 +0200 Case 'm' is now handled by CommandLineUI. - TESTCHANGE: Analysis/5 had to be switched off, as --principal-axis-system is hard to put into argclist by hand and counterproductive. commit 31b09efe60555434eafcd99fb4bf0adf4626b407 Author: Frederik Heber Date: Wed Jun 9 17:09:55 2010 +0200 Added new MoleculeDescriptor by name. - molecule Ids are rather clumsy to use (not as efficiently handled yet as those of atoms by World). - but this would need another queryMolecule as the one present so far, looks for ints not strings. commit 58bbd3f2e470541a11fee67100edb3e8b589c40f Author: Frederik Heber Date: Wed Jun 9 17:08:46 2010 +0200 Cases 'C' are now handled by CommandLineUI. - TESTFIX: Analysis/3/post/bin_output.csv was wrong, bins had max around 10, not 5. (which must be the max, as the box of water molecules is from 5:15 centered at 10 for each axis) - PeriodicPairCorrelartion(): Old commented-out block removed. - MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() - MolName and id is printed. commit cd504777a814c6a07f5ee0afa968688b74c98db2 Author: Tillmann Crueger Date: Wed Jun 9 16:30:10 2010 +0200 Added Logging capabilities to Observer Framework commit 1e6913b9968cc6beb553ca42434c08a099e00d98 Author: Frederik Heber Date: Wed Jun 9 16:09:46 2010 +0200 Order of actions called did not conincide with order on command line. CommandLineWindow::display() - Actions were called by going through the repository and checking whether present on CommandLine, this causes different sequence of actions to be called. - Now, we go through all command lind parameters and check whether they correspond to an action in the registry which we call. ActionRegistry: - new function: ActionRegistry::isActionByNamePresent() checks whether action is present in registry - TESTFIX: MaxOrder now failws if not another action is called before (here now, -v 1). Otherwise, return code only occurs on third call not on second commit 94d131220b911d708c24560616b4800dd3578f08 Author: Frederik Heber Date: Wed Jun 9 16:06:23 2010 +0200 Helpful messages added to find failing queries in CommandLineUI. - all ..CommandLineQuery() functions give missing warning on failure - Dialog::display() admonished which query failed (and needed to friend of its own Query subclass for that ...) commit 1045249f0bb2378aa1e7ffeb512c7f6a371bc022 Author: Frederik Heber Date: Wed Jun 9 13:21:58 2010 +0200 Changed PairCorrelationAction to incorporate all three cases and handled different parameters needed for each, changed queryElement to list of elements. PairCorrelationAction: - PairCorrelationAction has now three cases for Pair, Point and Surface. - removed PairCorrelationToPointAction, PairCorrelationToSurfaceAction files and from Makefile.am queryElement: - queryElement, ElementCommandLineQuery, ElementTextQuery, ElementQuery all changed to use vector* instead of element ** - ChangeElementAction changed accordingly - oldmenu::AddAtoms() changed accordingly Others: - CommandLineWindow::populateAnalysisActions() - missing MolecularVolumeAction and PrinicipalAxisSystemAction. commit c78d4478f91e8205044bcdcfb3ee915115126e76 Author: Frederik Heber Date: Wed Jun 9 13:12:08 2010 +0200 Change to PairCorrelation...() functions, accept now vector instead of ptrs to element *. - modified ParseCommndLineOptions for all three cases 'C': Pair (E), Point (P) and Surface (S). - modified all Analysis(Pair)Correlation...() unit tests to have a vector of elements be delivered. commit 8540f07e82cb345c4dd82592eefae4aeb47705f4 Author: Frederik Heber Date: Tue Jun 8 15:57:09 2010 +0200 Case 'D' is now handled by CommandLineUI. commit e4b5de3092d7deccd5df82703dcd50757372d70a Author: Frederik Heber Date: Tue Jun 8 15:49:27 2010 +0200 Case 'f' is now handled by CommandLineUI. - FragmentationFragmentationAction::handle() has not been implemented, copied from ParseCommandLineOptions() - FIX: FragmentationFragmentationAction had wrong NAME. - World has new ExitFlag variable and getter and setter functions. - TESTFIX: Fragmentation/3 does not copy all BondFragment* files from pre but runs Fragmentation twice and tests the ExitFlag. This makes the test more independent and closer to what it's suppose to test (i.e. iterative fragmentation with increasing order). - TESTFIX: removed all Fragmentation/3/pre/BondFragment* files - FIX: CommandLineWindow::populateFragmentationActions() was missing two of its three actions still. commit 48ab70ab46459550f30b5526d868ebaef5b918e5 Author: Frederik Heber Date: Tue Jun 8 14:13:11 2010 +0200 Case 'u' is now handled by CommandLineUI. commit f2a1d3a2a5da8edb824b9f513362646108169507 Merge: 4ed18b5 e58856b Author: Frederik Heber Date: Tue Jun 8 13:18:45 2010 +0200 Merge branch 'FixRemovedElementsDBFromMakefile' into stable - elements_db.[ch]pp had been removed as it was inserted too early (before files were added), but this confused recursive merge. Hence had to be reintroduced by hand here. commit 4ed18b5079e3f4ea8a189543a78e279bb579b049 Merge: 9907e77 b0e9c9b Author: Frederik Heber Date: Tue Jun 8 13:13:33 2010 +0200 Merge branch 'FixPeriodenTafelConstructorLoadDBs' into stable commit e58856b1e8e0c3cba8153a568d0e09b787f1ce5c Author: Frederik Heber Date: Tue Jun 8 13:12:24 2010 +0200 BUGFIX: elements.db has disappeared to early from .._DATA. - we need it till the switch to CommandLineUI and internal elements' db is done. - FIX: elements_db.cpp/.hpp were already in den Makefile, but not added yet. commit b0e9c9b269a10c150b013b7fb592c9bf4771717b Author: Frederik Heber Date: Tue Jun 8 13:00:53 2010 +0200 BUGFIX: Constructor of periodentafel had ASSERTs with function calls inside. - This is very serious as when debugging is switched off, ASSRTs are not getting compiled anymore, hence the functions to load the database are never called. commit 9907e774dbebe0f523b34cdd51927af10f1b83c2 Author: Frederik Heber Date: Tue Jun 8 01:55:30 2010 +0200 Case '-F' is now handled by CommandLineUI. - FIX: FillWithMoleculeAction was still using internally created water instead of molecule parsed from xyz file. commit 19c0e3e1d4f92d1e97268b4dba8d29dcbfc80b9c Author: Frederik Heber Date: Tue Jun 8 01:54:32 2010 +0200 FIX: Boost >1.38 is needed for program_options to have working multitoken() commit 0286bc68dfc4d223023e8fa98a68a958f8bc8a40 Author: Frederik Heber Date: Tue Jun 8 01:48:31 2010 +0200 BUGFIX: ListOfDoubles changed to Box and Vector. - ListOfDoubles is now Box/Vector at appropriate places thanks to new validators and types - new types BoxValue and VectorValue, being structures for symmetric 3x3 matrices and 3-dim vectors - new file Values.hpp, containing the definitions added to Makefile.am - new overloaded validate functions for boost::program_options - CommandLineUI - adapted VectorCommandLineQuery and BoxCommandLineQuery to expect VectorValue and BoxValue - BUGFIX: CommandLineDialog::BooleanCommandLineQuery::handle() had copy&paste from Menu instead of program_options - MapOfActions - center-in-box and change-box expect Box not ListOfDoubles - distances and lengths expect Vector not ListOfDoubles - new DoRotate option - inserted fill-molecule action commit 2c893432d10d5f709a426218ed12192005dc55e8 Author: Tillmann Crueger Date: Fri Jun 4 14:19:41 2010 +0200 Repaired broken NDEBUG mode of ASSERT commit 76c0d685b7570bb1f520bbd307e7486df6502bb4 Merge: e058267 27ac00c Author: Tillmann Crueger Date: Fri Jun 4 11:28:46 2010 +0200 Merge branch 'StructureRefactoring' into stable Conflicts: molecuilder/src/Makefile.am molecuilder/src/periodentafel.cpp commit e0582670720906c59f098684b31f4fd9f892fc21 Author: Tillmann Crueger Date: Fri Jun 4 11:01:15 2010 +0200 Small corrections on Makefile commit 3610bbd6dd22cef268eb768a7a49227356ab66d0 Author: Frederik Heber Date: Wed Jun 2 18:31:10 2010 +0200 test.conf.in was missing for test Simple_configuration/5. Signed-off-by: Frederik Heber commit e30ce84fbef084941d63f2e2a7066172cc844cb4 Author: Frederik Heber Date: Wed Jun 2 17:41:52 2010 +0200 Case 'd' is now handled by CommandLineUI (RepeatBoxAction). - rewritten the RepeatBoxAction quite a bit by allowing to build (x,y,z) matrices out of single molecules. - implemented bew MoleculePtrDescriptor, which accepts the pointer to a molecule (so far, CommandLineQuery is as of yet lacking maybes/default values). Signed-off-by: Frederik Heber commit cb16fe02e8ab0e4ed02ea5cf121e406af58e092c Author: Tillmann Crueger Date: Wed Jun 2 17:18:11 2010 +0200 Added a mixin that allows specifying methods for complete sets of vectors. commit 584a2a322e04645b47cee8b1353d66e700542023 Author: Frederik Heber Date: Wed Jun 2 16:39:32 2010 +0200 Case '-O' is now handled by CommandLineUI (CenterOnEdgeAction). Signed-off-by: Frederik Heber commit 116f37657626f7b5645e891423a19cb605191b28 Author: Frederik Heber Date: Wed Jun 2 16:38:07 2010 +0200 Case '-c' is now handled by CommandLineUI. - BUGFIX: WorldAddEmptyBoundaryAction() - forgot to add boundary on atom translation. commit accebe8bc59ac265078590b2779dbe11dbaa7e55 Author: Frederik Heber Date: Wed Jun 2 16:25:12 2010 +0200 Fix of PrepareClustersInWater (at least it does not stumble over memory issues). - note: this was just done to make check test Filling/2 work again (which only runs and does not check the output) - GetBoundaryPoints() - using now left and right to have a good runner even if it is discarded/deleted, flag check when loop is through - PrepareClustersinWater() - LCList is now a pointer and removed after FindConvexBorder() - DOCUFIX: Tesselation::RemoveTesselationTriangle() - triangles attached to lines are printed starting on next line, not current - BUGFIX: Tesselation::FlipBaseline() - as we remove the two connected triangles, the baseline who they are attached to will be deleted and removed, hence the loop over the line's triangles does not work. Now, we first put all into a list, then delete the triangles. This was the last test to fail. All unit tests (33), all testsuite cases (45) and all tesselation tests (15) work. Signed-off-by: Frederik Heber commit 7fd416194cc480b9626bf9368e61666164c47ec7 Author: Frederik Heber Date: Wed Jun 2 14:22:47 2010 +0200 FIX: CorrelationToSurface() was broken. - DOCU: CorrelationToSurface() is more verbose on empty molecules, molecule::doCountAtoms() is verbose on naming atoms only for high verbosity levels - MEMFIX: ParseCommandLineOptions() - case 'CP' did not set counter to zero for re-setting active flag. - BUGFIX: molecule::DeterminePeriodicCenter() - InverseMatrix() was called with cell_size instead of full matrix. - rewritten MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() a bit: - molname and contained atoms are given - no more stupid map, atoms are directly transfered from Leaf to molecules[] - mol that contained all was not destroyed after use commit 6ef0a48dcb16ec5e06a6051a6f5432a8f9e8f020 Author: Frederik Heber Date: Wed Jun 2 14:21:38 2010 +0200 Removed Info objects from the small pointcloud implementation functions in molecule_pointcloud.cpp. - They made lots of noise for little use. Signed-off-by: Frederik Heber commit 992fd78d0cb2f68ddae2cbbc7bf29ef8a4fdc1d8 Author: Tillmann Crueger Date: Wed Jun 2 14:11:52 2010 +0200 Repaired some QT4 related memory leaks commit 67c75bd2dd15c9031c4c7a08a824e1a1fd2b47b7 Merge: 82b71ad 190326d Author: Tillmann Crueger Date: Wed Jun 2 13:44:00 2010 +0200 Merge branch 'MenuRefactoring' into QT4Refactoring Conflicts: molecuilder/src/Makefile.am molecuilder/src/builder.cpp molecuilder/src/unittests/Makefile.am molecuilder/src/vector.cpp commit 190326dfcdf83119424cbc4a7e16803961408c23 Merge: 9cf88c1 27ac00c Author: Tillmann Crueger Date: Wed Jun 2 13:19:27 2010 +0200 Merge branch 'StructureRefactoring' into MenuRefactoring commit 0c7ed8641ea0c9f19538167d4633515f9dc0bc2e Author: Tillmann Crueger Date: Wed Jun 2 13:03:06 2010 +0200 Passed the internal gsl_vector structure from Vector to linearSystemOfEquations. commit d690faa6ae4fab0442354d2d17cf5b7dd59c0f1e Author: Tillmann Crueger Date: Wed Jun 2 12:51:38 2010 +0200 Replaced array inside of Vector with gsl_vector structure. commit d466f0823884cfb859e6b670d503b847b4f9f716 Author: Tillmann Crueger Date: Wed Jun 2 12:46:31 2010 +0200 Made the internal parts of Vector use accessor functions instead of direct access commit 27ac00cfe9f7342b99332c01a04df19c1db85e13 Author: Tillmann Crueger Date: Fri May 28 14:44:09 2010 +0200 Made the line-plane intersection method take a line instead of two vectors commit 98a8b413a5a918be28c8c6dd7fe6fbaf41364d59 Author: Frederik Heber Date: Wed Jun 2 10:37:17 2010 +0200 TESTFIX: Analysis/... no more diff of output.csv (nameing dependent) - bin_output.csv in Analysis/1-2 were false! This was checked against version from commit 075729fddff01a99fa949f619de12b443235cd81. - As, 62 in the bin of 0.5 is sensible, as there are 31 water molecules with 62 hydrogens, each seeing on oxygen (the one it is bound to) in 0.95 distance - bin_output.csv are replaced by the ones generated from the above commit (not from the current one) and they perfectly match. Signed-off-by: Frederik Heber commit 009607edc36ccb36a9ffaf235b0da1289b350e41 Author: Frederik Heber Date: Tue Jun 1 23:36:36 2010 +0200 Small changes to ...Correlation...(). - Calling doCountAtoms on all molecules before performing correlation calculations in ...Correlation...() - Output of correlationmap in ParseCommandLineOptions(). commit d51975159322114aa06fdaf99922a91c0070c4bd Author: Frederik Heber Date: Tue Jun 1 23:36:22 2010 +0200 Small changes to FindConvexBorder(). Signed-off-by: Frederik Heber commit e0aee2b0c326989ff24c035a5908461cfca18048 Author: Frederik Heber Date: Tue Jun 1 23:04:17 2010 +0200 Bugfix of FillBoxWithMolecule() and Testfix of Filling/1 - BUGFIX: FillBoxWithMolecule() - increased filler in loop instead of iter (and iter is const now) - FillBoxWithMolecule() - uses now const int FillerCount instead of filler->getAtomCount() - TESTFIX: Filling/1 - replaced test.conf, as is exactly the same (after filling!) except ordering of initial atoms (of butane), checked visually and by diff. commit 15b670b004539c99ea55f410a0b9129ca76edf7c Author: Frederik Heber Date: Tue Jun 1 22:25:36 2010 +0200 Testfixes for Tesselations/1-3 and bugfixes for molecule::DetermineCenterOfAll() - BUGFIX: molecule::DetermineCenterOfAll() - would scale by -1./Num, which is not the right center. - TESTFIX: Tesselations/1-3 all suffered ... replaced in regression dir. - (Non)ConvexEnvelope.r3d to be disordered, due to IonType2 appear before IonType1 in test.conf - (Non)ConvexEnvelope.r3d from test and from regression to differ by 4.4e-16 and 0 (now nodes coordinates are set to 0, if fabs(.) is below MYEPSILON) - Tesselations/3: NonConvexEnvelope.dat was disorder (but the exactly same tesselation) due to IonType (did not occur for Tesselations/1-2) commit 0de7e81363c14651e95003837debfa7013ab2edb Author: Frederik Heber Date: Tue Jun 1 21:59:25 2010 +0200 FIX: Test Fragmentation is at MaxOrder was broken. - BUGFIX: molecule::CheckAdjacencyFileAgainstMolecule() called AtomCount() all the time instead of storing in const integer. - DOCUFIX: "done"/"failed" is now always indented by hand "\t" for better readability - DOCUFIX: Improved wordiness of CreateFatherLookupTable(), CheckAdjacencyFileAgainstMolecule_CompareBonds(), molecule::CheckAdjacencyFileAgainstMolecule() - TESTFIX: Molecules/2 created a dir sdt and movedf all BondFragment*conf* files thereto and counted, what for? - TESTFIX: Molecules/3 actually made only one fragmentation call. I guess before old stuff was not cleaned up and thus worked. But we need present KeySet and OrderAtSite to recognize MaxOrder! Hence, we now call it twice, first expecting 0, then 2 as return code which marks the correct procedure. commit acf8008e455ed1851656ff9d81044edf766929e0 Author: Frederik Heber Date: Tue Jun 1 10:02:48 2010 +0200 TESTFIX: Wrong (old) ordering of conf files (IonTyp2 before IonType1) causes wrong id's in dbond and adj. - replaced test.conf, replaced test.dbond and test.adj to correct. - bonds are ok and have been checked to be correct. Signed-off-by: Frederik Heber commit bd6bfac107ab7ca8d1788ff529d3fa4c3a27439f Author: Frederik Heber Date: Tue Jun 1 09:28:15 2010 +0200 Fixes after first,last removal. - BUGFIX: molecule::OutputGraphInfoPerBond() - had removal loop, not go-through-each-loop. - BUGFIX: MoleculeListClass::~MoleculeListClass() - did falsely destroy molecules too although this is done by World. - new function MoleculeListClass::erase() - handles signing off molecule as observer and removes from list. - FIX: MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() - all molecules are removed from MoleculeListClass and also from World. - all bonds are removed, by going through all atoms of World. - molecule::getAtomCount() - calls doCountAtoms() which re-numbers and -labels atoms. This confused stuff. - TESTFIX: Molecules/6 and Molecules/7 had wrong (old) ordering in their test.conf commit 1b93210482401ac84634a9154269150b34017ddf Author: Frederik Heber Date: Mon May 31 21:46:59 2010 +0200 Added missing test.conf.xyz for Domain/6. Signed-off-by: Frederik Heber commit e08c46a527abafdd358c8cd066c13f33e9b77ab1 Author: Frederik Heber Date: Mon May 31 20:41:12 2010 +0200 Removed molecule::first, molecule::last. - molecule does not have a chained list of bonds. - we have to go through atoms and its bonds, by checking (*BondRunner)->leftatom against (*AtomRunner) we exclude the other half. - first,last were present in only a few structures. - new functions: - molecule::hasBondStructure() - replaces first->next != last construct - molecule::CountBonds() - replaces first->next->next == last (i.e. one bond present) and alikes. Signed-off-by: Frederik Heber commit 1024cbc27eef62ed70b770868d078bd3df38ada6 Merge: 42af9ec a7b761b Author: Frederik Heber Date: Mon May 31 19:29:30 2010 +0200 Merge commit 'jupiter/MoleculeStartEndSwitch' into CommandLineActionMapping Conflicts: molecuilder/src/Makefile.am molecuilder/src/builder.cpp molecuilder/src/config.cpp molecuilder/src/helpers.hpp molecuilder/src/molecule.cpp molecuilder/src/molecule_dynamics.cpp molecuilder/src/molecule_fragmentation.cpp molecuilder/src/molecule_geometry.cpp molecuilder/src/molecule_graph.cpp molecuilder/src/moleculelist.cpp molecuilder/src/unittests/AnalysisCorrelationToPointUnitTest.cpp molecuilder/src/unittests/listofbondsunittest.cpp Integration of MoleculeStartEndSwitch had the following consequences: - no more AtomCount -> getAtomCount() - no more start/end -> begin(), end() and iterator - no more decent ordering in atomic ids (hence, Simple_configuration/8 and Domain/5, Domain/6 now check by comparing sorted xyz, not confs) There is still a huge problem with bonds. One test runs into an endless loop. Signed-off-by: Frederik Heber commit 42af9ec72d1b004ed85b6db33bdcaeeecd94a23a Author: Frederik Heber Date: Mon May 31 16:27:12 2010 +0200 MEMFIXES: no more default saving/loading of element's db, config::SaveTREMOLO(), molecule::CreateMappingLabelsToConfigSequence() - ParseCommandLineOptions() - loading element's db only when path was given - main() - default storing at end removed, should be handled by config::~config() - config::SaveTREMOLO() - LocalNotoGlobalNoMap is now an STL map, id must not be continuous, so old way is very error-prone - molecule::CreateMappingLabelsToConfigSequence() - don't delete SortIndex (is done in FragmentMolecule) - molecule::FragmentMolecule() - dont' delete FragmentList in the block - testsuite-simple_configuration.at - removing atoms around sphere is not broken anymore, changed testsuite accordingly. Signed-off-by: Frederik Heber commit 920c708861f3c5528d44b9973722fa719f892ce0 Author: Frederik Heber Date: Mon May 31 15:09:58 2010 +0200 Removed all Malloc/Calloc/ReAlloc (&Free) and replaced by new and delete/delete[]. Due to the new MemDebug framework there is no need (or even unnecessary/unwanted competition between it and) for the MemoryAllocator and ..UsageObserver anymore. They can however still be used with c codes such as pcp and alikes. In Molecuilder lots of glibc corruptions arose and the C-like syntax make it generally harder to get allocation and deallocation straight. Signed-off-by: Frederik Heber commit 87b5978573759a5d986895a3ec448a92690612fc Author: Frederik Heber Date: Mon May 31 10:34:52 2010 +0200 TESTFIX: Removed diff of output.csv for surface correlation as this is very tesselation-dependent. - i.e. it may fail without being wrong just because triangles are in different ordering (same as with comparison of triangles in Tesselations testpart) Signed-off-by: Frederik Heber commit 5ddb8a76c0957333ad68a9e64b106326e5855b32 Author: Frederik Heber Date: Mon May 31 10:34:09 2010 +0200 Added out-sourced testsuite files to Makefile.am such that they are checked for changes, too. Signed-off-by: Frederik Heber commit 158c594ea323081685d67516e8bc7041f8e453fc Author: Frederik Heber Date: Mon May 31 01:40:04 2010 +0200 Case '-b' now handled by CommandLineUI and fixes. - ParseCommandLineOptions() - rather use the old code still to check whether appropriate number of arguments present - bound-in-box is just ensuring all atoms are within current box, i.e. no new box is specified (there is no pendant to that in ParseCommandLineOptions) - WorldCenterInBox action however has to parse a box, corrected. commit 2a92ffb38b7c7646235b990f61cd5dc07e6290fd Author: Frederik Heber Date: Mon May 31 01:12:50 2010 +0200 Case '-s' now handled by CommandLineUI. - FIX: Type Vector has to be ->multitoken() in MapOfActions. - action scale-box was also missing DesriptonMap entry commit 6ca1f7793fa2dad297e98f4405497e00f487dc9b Author: Frederik Heber Date: Mon May 31 00:52:33 2010 +0200 case '-B' now handled by CommandLineUI. commit 26f75a9168a4715bd185c7d52b9736805d848a59 Author: Frederik Heber Date: Mon May 31 00:49:13 2010 +0200 FIX: Box was not parsed correctly. - ListOf... types have to be multitoken() in MapOfActions class. - BoxQuery::setResult() - had *target[] instead of (*target)[] (priorities of ops) - change-box, bound-in-box, center-in-box all have ListOfDoubles now commit 8c574b448e9fad0becd230ba3f007eeeac383aed Author: Frederik Heber Date: Sun May 30 22:55:12 2010 +0200 Split up testsuite into several at-scripts. - the testsuite has grown quite large due to the numerous new tests and is more readible now. commit afd01c58a1876a8f3b51eadda0ef2372a5eb92c6 Author: Frederik Heber Date: Sun May 30 21:40:32 2010 +0200 Added case '-d' (duplicate box) to testsuite. commit 746c57f266b68036ce9d31c51dc74a5d2fab1db8 Author: Frederik Heber Date: Sun May 30 21:05:43 2010 +0200 Added case '-u' (suspend in water) to testsuite. - this is broken still and quite so. commit d6d6c1f0c133722c713970e693c90b090ce669c2 Author: Frederik Heber Date: Sun May 30 20:24:05 2010 +0200 Added case '-m' (principal axis system) to testsuite. commit 8048a4d343c98d242baafca3011e38863181ead3 Author: Frederik Heber Date: Sun May 30 19:31:15 2010 +0200 Added case '-s' (scaling box) to testsuite. commit eddea2f743da55581bef38f6a884adf1edc42937 Author: Frederik Heber Date: Sun May 30 19:03:25 2010 +0200 Added case '-T' (periodic translation) to testsuite. - BUGFIX: Vector::WrapPeriodically() added half of the box on top which is not as intended. - this broke testcase '-b', which relied on the half of the box adding. - new function molecule::DetermineCenterOfBox() - is used instead to additionally add this center in molecule::CenterInBox() - BUGFIX: molecule::TranslatePeriodically() subtracted vector instead of adding. commit 5d12d2d5999e6272d2e2354b6cde0d11cccf0c04 Author: Frederik Heber Date: Sun May 30 18:55:04 2010 +0200 Added case '-t' (translation) to testsuite. commit 9b7db1407040d125d217e62995a5301e5038bfd3 Author: Frederik Heber Date: Sun May 30 18:51:45 2010 +0200 Added case '-R' (removing atoms outside of sphere) to testsuite. - basically works, but molecuilder crashes with SIGABT when destroying world. commit c7a473c7b271cbf7b6e3555547735d4fb61d8f77 Author: Frederik Heber Date: Sun May 30 18:09:06 2010 +0200 Added cased '-P' (force integration) to testsuite. - this is currently not working at all with los of memory corruption, hence testsuite checks for this failure only. commit f8f14dff3949f34b6f8ef531f3cb3a99aa629c12 Author: Frederik Heber Date: Sun May 30 17:37:53 2010 +0200 Added case '-L' (linear interpolation) to testsuite. - this just calls the function and does not check anyhting, as this is currently not at all working properly. commit 13bfeb275d19d51dbc53ba9b18ec9c8ceae993df Author: Frederik Heber Date: Sun May 30 17:30:32 2010 +0200 Added case '-S' (storing temperature) to testsuite. - made three trajectory steps by shifting atoms per step by (0.1,0,0) and giving speed (0.1,0,0) commit 72e36f72d796c7991497b7d6eb601e376977b8dc Author: Frederik Heber Date: Sun May 30 17:24:29 2010 +0200 Added cases '-j' (storing bonds) and '-J' (storing adjacency) to testsuite. commit c68c90483054a6450b0cf9cfb7d30fc4333e125b Author: Frederik Heber Date: Sun May 30 17:18:50 2010 +0200 Added case '-A' (parsing bonds) to testsuite. - ParseCommandLineOptions() - input was not delete'd, is now instantiated directly. - molecule::CreateAdjacencyListFromDbondFile() was buggy, needed line-by-line parsing via stringstream ro fix. - bond file has been created by storing bond information. commit 1325ba2a70cd4c53a15d898817be78a5d79deb8a Author: Frederik Heber Date: Sun May 30 16:46:39 2010 +0200 Added case '-F' (filling with molecule) to testsuite. commit 5e11e475d9ec76d0b6a2f8a1f765cdafef0a17fe Author: Frederik Heber Date: Sun May 30 16:45:50 2010 +0200 In-code created water molecule has been removed in ParseCommandLineOptions() - case 'F'. Water can really be obtained anywhere (at least its coordinates). commit ef2b39795daace9d596f4ac75173cba4e7a59e07 Author: Frederik Heber Date: Sun May 30 15:58:31 2010 +0200 Added case '-C S' (correlation to surface) to testsuite. - created test.conf with a butane surrounded by 205 water molecules. commit 08f6ff74de126d266b8c8b83e1a528520ef6447c Author: Frederik Heber Date: Sun May 30 15:42:26 2010 +0200 Added case '-C P' (correlation to point) to testsuite. - DOCUFIX: Same as above also for this part. commit 06f8ee2cd45a117a11b0b58435dfe842c76dbcc7 Author: Frederik Heber Date: Sun May 30 14:27:08 2010 +0200 Added case '-C E' (pair correlation analysis) to testsuite. - DOCUFIX: ParseCommandLineOptions() - lacked parameters binstart and binend on error description - FIX: test.conf for regression test was not centered to (20, 0, 20, 0, 0, 20)-box commit 046a1e94c023e06f7a7ca03a07a7ad4ccb14fa10 Author: Frederik Heber Date: Sun May 30 13:51:28 2010 +0200 Added case '-I' (subgraph dissection) to testsuite. - constructed example with 31 water molecules which are to be dissected. commit 5188f5195ea3fe98810ef55e431af37da97c2a31 Author: Frederik Heber Date: Sun May 30 13:31:10 2010 +0200 Added case '-M' (MPQC basis) to testsuite. - ParseCommandLineOptions() - moved case 'M' to area, where no present config is needed (just sets a string after all) - DOCUFIX: Error message for case 'M' would say -B instead of -M commit 93d732be93a6b37406163b3a4e71ccf9f75741ba Author: Frederik Heber Date: Sun May 30 13:05:54 2010 +0200 Added case '-X' (default mol name) to testsuite and bugfix. - rewrote World::SetDefaultName() a bit to make memory allocation more fail-proof - BUGFIX: ParseCommandLineOptions() used getDefaultName() with a *, hence only the first character was printed. commit e8e48ab6455f4577a906de8472a0a43c10e27f4c Author: Frederik Heber Date: Sun May 30 12:57:14 2010 +0200 Added case '-n' (fast parsing) to testsuite. commit 403637277d7c37d5622eb4c88b966a4c0f40108a Author: Frederik Heber Date: Sun May 30 12:56:08 2010 +0200 Added case '-g' (load bond table) to testsuite. commit ff73a278ed6aab371dc050b0b8eece6637145589 Author: Frederik Heber Date: Sun May 30 12:53:16 2010 +0200 Refined check for case '-e' of testsuite and some found bugfixes of periodentafel loading. - LoadPeriodentafel() gives always a properly allocated istream, hence checking for NULL in all Load..Database() is nonsense, checking for fail() is needed. - LoadElementsDatabase() - counts the number of parsed elements (returns false when zero) - discards empty lines (elements that dont' make sense) commit 2f0c427f05cd991c397883e37e6c66062634ba5f Author: Frederik Heber Date: Sun May 30 12:00:41 2010 +0200 Added test for parsing specified element database to testsuite. commit a97f55878bc66c3c8475e3c3d6feefcbe3478eff Author: Frederik Heber Date: Sun May 30 11:54:26 2010 +0200 Extended standard options part of testsuite to include further tests. commit 745874088f9b5e6fda5ef4e8ae0793f1c9c6a9de Author: Frederik Heber Date: Sun May 30 11:49:37 2010 +0200 Added case '-O' to testsuite. commit 8df4e3beb4f36ea13856fd0578c1d6a96aa0156c Author: Frederik Heber Date: Sun May 30 11:46:13 2010 +0200 Removed src/Actions from subdirs as this is handled in src/Makefile.am already. - this broke 'make distclean' as distclean was executed twice in src/Actions and Makefile was thus missing on second run. commit 0335a28413a0412462fc56a5d6b6fd870f0c6146 Author: Frederik Heber Date: Sun May 30 11:45:41 2010 +0200 Added case '-c' to testsuite. commit 318cea7c681aa1b7cad2c3f8eb67b410c41fe1ea Author: Frederik Heber Date: Sun May 30 11:21:01 2010 +0200 FIX: Tesselations test failed on first. - defs.in would go into first testdir and perform all tests therein instead of own testdir per molecule to tesselate, fixed. commit b2b47f735d9af7a5b6d1967e4cb3c041f3959512 Author: Frederik Heber Date: Sun May 30 11:18:14 2010 +0200 Shifted regression testsuite into folder regression. This is to allow for calling make check only on the regression testsuite without Tesselations test, too. - atlocal.in, molecuilder.in, Makefile.am were moved - molecuilder.in had ../../atconfig now sourced and call of molecuilder is different - configure.src has TEST_DIR tests/regression (to create atconfig at the right place) - Makefile.am in tests folder just SUBDIRs to regression and Tesselations commit e3989ae15496fb502928eef192b39ea83fe71dbc Author: Frederik Heber Date: Sat May 29 20:57:36 2010 +0200 Added case '-b' to testsuite. commit c827202aa2e314c8cd2fb20e7cb636483025addc Author: Frederik Heber Date: Sat May 29 20:29:33 2010 +0200 Added case '-B' to testsuite. - added new set of tests 'Domain' commit d8c0edb40a1eb91db8b50b37f1515e671fca963f Merge: 62680ec f37746b Author: Frederik Heber Date: Sat May 29 17:13:36 2010 +0200 Merge branch 'FixTestsuiteDetermineCenterOfAllBug' into CommandLineActionMapping commit f37746b3594740cf70d4b40cfba179f483b06139 Author: Frederik Heber Date: Sat May 29 17:11:06 2010 +0200 FIX: As molecule::DetermineCenterOfAll() was broken, centers used in .r3d files were wrong. - All .r3d files in the regression tests have been replaced with those with correct center calculation. Signed-off-by: Frederik Heber commit 62680ec4fe7be04b13dec92780c0774fe489775b Merge: 9757d99 99fcafa Author: Frederik Heber Date: Sat May 29 16:18:41 2010 +0200 Merge branch 'FixReintroduceExitFlagtoParseCommandLineCall' into CommandLineActionMapping Conflicts: molecuilder/src/builder.cpp Due to this old merge, at the end of main() there were still old memory cleanup routines which got mixed in again. Signed-off-by: Frederik Heber commit 99fcafa9e68ebff1a10d32cc5cb21cccebb6350f Author: Frederik Heber Date: Sat May 29 16:10:24 2010 +0200 FIX: Flag returned by ParseCommandLineOptions() needs to be heeded, e.g. for FragmentMolecule(). - now, there is again an ExitFlag and if {0,1} we return 0 and else the ExitFlag on exit. Signed-off-by: Frederik Heber commit 9757d99965979a40ce365519c2cb709297772849 Merge: b13ea48 60f50af Author: Frederik Heber Date: Sat May 29 16:00:12 2010 +0200 Merge branch 'FixTestsuiteCode134onElementsDB' into CommandLineActionMapping commit b13ea48e067db1fc970a347074f5df706a4ec190 Merge: 0fb9f62 6670a97 Author: Frederik Heber Date: Sat May 29 16:00:08 2010 +0200 Merge branch 'FixtestsuiteforVerboseChanges' into CommandLineActionMapping commit 6670a97b53114ec805580d45caaa85f9b2b8731e Author: Frederik Heber Date: Sat May 29 15:16:55 2010 +0200 Change to testsuite as verbosity is now defined as (-v 3) not as (-vvv) anymore. - MapofActions.cpp: verbose and version shortforms were mixed (-v,-V), corrected. Signed-off-by: Frederik Heber commit 60f50af51620d85b7bb4c37d9d46626c8d561e24 Author: Frederik Heber Date: Sat May 29 15:24:29 2010 +0200 TESTFIX: Testuite expected return code 134 instead of 255 for wrong element's db. Signed-off-by: Frederik Heber commit 0fb9f623c5aff409731c2b2cb3a7b97ccb5a6812 Author: Frederik Heber Date: Sat May 29 15:11:22 2010 +0200 Fixes to prevent seg'faults. - CommandLineWindow::~CommandLineWindow() - does not unregister and delete all actions as this is done by the ActionRegistry anyway - main() - use atexit(cleanUp) (by Till) to ensure correct order of the cleanup - performCriticalExit() - don't free still allocated memory as this is handled by any good operation system nowadays commit b32dbbf2ada08a37282007f3e8fe996602fb6e14 Author: Frederik Heber Date: Thu May 27 13:04:42 2010 +0200 Fixes and changes to tesselation and concavity measurements. Here, we implement two attempts for a concavity measure: 1. Measure concavity per point by looking at neighbouring triangles - BoundaryLineSet::CheckConvexityCriterion() split up (calculation of angle outsourced to CalculateConvexity()) - CHANGE: CalculateConcavityPerBoundaryPoint() uses new concavity measure per BoundaryPointSet containing: - concavity per line uses angle instead of +/-1 for line, averaged by number of lines - also concavity over all attached triangles uses area of triangle and only in case of concavity, averaged by total area - new functions - BoundaryLineSet::CalculateConvexity() - calculates the angle between two triangles. - BoundaryLineSet::GetOtherTriangle() - for a closed line returns the other triangle for a given one - BoundaryTriangleSet::GetThirdLine() - for a given boundary point returns the line of the three which does not contain it (opposite line to a point) - CalculateAreaofGeneralTriangle() - calculates area of arbitrary triangle 2. Measure concavity by the distance to a more convex envelope (i.e. created with bigger sphere radius) - ParseCommandLineOptions(): case 'N' - two envelopes are created and the distance used as concavity measure via CalculateConstrictionPerBoundaryPoint() - FIX: CandidateForTesselation::CheckValidity() - checked against OptCenter instead of (*VRunner), animate_sphere line is printed as error, hence always visible - FIX: Tesselation::FindThirdPointForTesselation() - error if circumcenter is not the equidistant from each triangle node is now an error mesage - BUGFIX: Tesselation::RemoveDegeneratedTriangles() - would fail for more than two degenerate triangles to remove due to faulty loop construction and break instead of continue - BUGFIX: GetCenterofCircumcircle() - is numerically unstable (>1e-10) for big sphere radii, there are two other variants, not using angles. - FindNonConvexBorder() - RemoveDegeneratedTriangles() commented-out as runs into infinite loop for small radii (<5) for L-shaped cluster Other unrelated stuff: - DOCUFIX: CalculateVolumeofGeneralTetraeder() - four times "first vector" - FIX: Tesselation::FindAllDegeneratedTriangles() - iterator integrated into for-loop statement Signed-off-by: Frederik Heber commit 55898585945a37bf6084730eeeafcd2047d6a8f8 Author: Tillmann Crueger Date: Fri May 28 13:50:14 2010 +0200 Added methods to construct orthogonal planes from lines and vice versa commit ccf826e812f27853833b1b3f0938dcdcf4675568 Author: Tillmann Crueger Date: Fri May 28 13:41:08 2010 +0200 Removed Vector::mirror() in favour of Plane::mirror() commit 42a101a868efe57386bf87ed2524b862729e936a Author: Tillmann Crueger Date: Fri May 28 10:25:27 2010 +0200 Removed RotateVector() function in favor of Line::rotateVector() method. Line::rotateVector() is able to rotate any vector around any line in space. commit 643e7632e285a017dfb1b785b9f930ba145de897 Author: Tillmann Crueger Date: Thu May 27 16:24:34 2010 +0200 Removed getIntersectionOfTwoLinesOnPlane() in favor of the Line::getIntersection() method. commit 45ef76d8bee7dfcd142bef7a7cea8b1bc62fbafd Author: Tillmann Crueger Date: Thu May 27 16:15:57 2010 +0200 Added several methods to the line class. commit 47191b1ae27caa0201c747b3e4ef4f867251bd9d Merge: 215df0b 1ac51b4 Author: Tillmann Crueger Date: Thu May 27 13:28:58 2010 +0200 Merge branch 'PeriodenRefactoring' into StructureRefactoring commit 215df0bc95301e8d9ef7ed1a4816b6367f8dc1b4 Author: Tillmann Crueger Date: Thu May 27 13:28:37 2010 +0200 Simplified some methods. commit a7b761bc6e1b696b9f7a380da8984083300d3d7b Merge: 8f215dc 05a97c1 Author: Tillmann Crueger Date: Thu May 27 12:46:54 2010 +0200 Merge branch 'MoleculeStartEndSwitch' into StructureRefactoring Conflicts: molecuilder/src/Helpers/Assert.cpp molecuilder/src/Helpers/Assert.hpp molecuilder/src/Legacy/oldmenu.cpp molecuilder/src/Makefile.am molecuilder/src/Patterns/Cacheable.hpp molecuilder/src/Patterns/Observer.cpp molecuilder/src/Patterns/Observer.hpp molecuilder/src/analysis_correlation.cpp molecuilder/src/boundary.cpp molecuilder/src/builder.cpp molecuilder/src/config.cpp molecuilder/src/helpers.hpp molecuilder/src/molecule.cpp molecuilder/src/molecule.hpp molecuilder/src/molecule_dynamics.cpp molecuilder/src/molecule_fragmentation.cpp molecuilder/src/molecule_geometry.cpp molecuilder/src/molecule_graph.cpp molecuilder/src/moleculelist.cpp molecuilder/src/tesselation.cpp molecuilder/src/unittests/AnalysisCorrelationToSurfaceUnitTest.cpp molecuilder/src/unittests/ObserverTest.cpp molecuilder/src/unittests/ObserverTest.hpp commit bfd839afaa19cf687475c7163024108135b3d1ce Author: Frederik Heber Date: Thu May 27 11:17:11 2010 +0200 Changed and added counting of hydrogen bonds to menu. - CountHydrogenBonds() now receives two interface elements. This was needed to overcome double-couting in CSH-experiments. - Unit test CountHBonds has been changed accordingly, but not test for the new feature has been added. - case 'H' in builder.cpp is now used for counting hydrogen bonds not for giving help screen - option has been added to MeasureAtoms() menu Signed-off-by: Frederik Heber commit 1ac51b41d9e008b83bb1c5e147817fbfb179f6d1 Author: Tillmann Crueger Date: Fri May 21 12:23:40 2010 +0200 Made the construction of the names of database files simpler commit 8f215dce65749c25388ebef18067edea4650186a Author: Tillmann Crueger Date: Fri May 21 12:08:40 2010 +0200 Simplified tesselation.cpp by allowing direct access to derived triangle internals commit f2f4ae653593ee7da86b543fbbb0de89955e6797 Author: Tillmann Crueger Date: Thu May 20 18:12:03 2010 +0200 Made the memory debugger thread safe commit 93dfc7b133daaec4158cbde03034fcda54d7f1b6 Author: Tillmann Crueger Date: Thu May 20 17:57:02 2010 +0200 Made the delete handle deletion of NULL pointers more gracefully commit d4c9ae30e4ca0690c71556dd2dc87a2d3a54a18b Author: Tillmann Crueger Date: Thu May 20 17:51:14 2010 +0200 Removed the DistanceToPlane method in the Vector class in favor of a method that computes the distance to arbitrary spaces commit 570228002c9c11af2f39436798c605553bace8bb Author: Tillmann Crueger Date: Thu May 20 15:42:43 2010 +0200 Made it possible to disable the MemoryTracker using Compileflags commit 8de375a10c8076bafe565e2807dd494420ff8f2f Merge: eff648e bab12a0 Author: Frederik Heber Date: Wed May 19 20:45:23 2010 +0200 Merge branch 'StructureRefactoring' into CommandLineActionMapping Conflicts: molecuilder/src/atom_particleinfo.cpp molecuilder/src/builder.cpp The following conflicts were solved: - in atom_particleinfo constructor the bugfix could not be merged automatically - in builder.cpp at the end of main() cleanup and memory:getstate() were still present. commit eff648ea6c40f6b6387a20155b52c998f6b8b8a3 Author: Frederik Heber Date: Wed May 19 20:41:05 2010 +0200 BUGFIX: In ParseCommandLineOptions() -v and -V were mixed. - execution was interrupted for -v (verbose) instead of -V (version) commit bab12a0d45377cc2d9b3ced24da38260bf5153bd Author: Tillmann Crueger Date: Wed May 19 16:03:42 2010 +0200 FIX: Fix of bug introduced during Vector Refactoring Testsuite now working again commit 673c7f581ef700fbed50d573fc0eb6126c06cb19 Author: Frederik Heber Date: Tue May 18 17:58:58 2010 +0200 BUGFIX: molecule::DetermineCenterOfAll() was broken for single atom. - in case of single atom center would be (nan, nan, nan) due to wrong list treatment. commit 4eb4fe704b5f87bedd7f4eec06861f2f98bff9df Author: Frederik Heber Date: Tue May 18 17:20:52 2010 +0200 "-e " not necessary anymore. Removed necessity of specifying path to databases (this was one check of molecuilder/test/testsuite.at which cannot be fulfilled anymore with boost::program_options) For this to work a great number of small changes have been necessary: class periodentafel: - all .db files merged into const char * arrays in elements_db.cpp - periodentafel rewritten: - each database has its own function and uses a istream: LoadElementsDatabase(), LoadValenceDatabase(), LoadOrbitalsDatabase(), LoadHBondAngleDatabase(), LoadHBondLengthsDatabase() - constructor periodentafel::LoadPeriodentafel() calls each function on the above const char * arrays - it is still possible to call LoadPeriodentafel with an external path. - FindElement(), AskElement() and EnterElement return element * const instead of const element * (i.e. the contents of the pointer is const (the element) not the pointer itself which is very vexatious (i.e. FindElement() yields const element * which can subsequently not be used for RemoveElement(), ...) - parsedElems is not needed anymore. Instead we operate on map elements directly - new unittest periodentafelTest which is made friend of periodentafel to be able to access private loading functions directly A number of unit tests had to be changed (all that create elements during setUp() which is now unnecessary) - element creation removed: AnalysisCorrelationToPointUnitTest, AnalysisCorrelationToSurfaceUnitTest, AnalysisPairCorrelationUnitTest, CountBondsTest, LinkedCellTest, ParserUnitTest, AnalysisBondsTest, BondGraphTest, ListOfBondsTest - adapted parsed bond table (carbon is no Z=6 not 2): AnalysisBondsTest, BondGraphTest Some of the analysis_bonds function's signatures were changed in the process: - have const element * instead of element *: MinMeanMaxBondDistanceBetweenElements(), CountHydrogenBridgeBonds() Finally, the respective tests are removed from molecuilder/tests/testsuite.at. commit 5079a05ba5b3e06c57bfc08de15dc8d8b7709ce8 Author: Frederik Heber Date: Tue May 18 17:18:24 2010 +0200 Actions put into libMolecuilderActions, UIElements into libMolecuilderUI - due to great number of Actions it is sensible to put them into their own library - this is advantageous overall, but right now especially as all the unit tests do not depend on this lib. - it was also needed as Actions depend on UIElements and to resolve to correct ordering, UIElements have to be available before the libMolecuilderActions is aded (if compiled into libmolecuilder it is appended after!) commit 2a5eb766139b7fca18d10b77fc10658f94bc8b6b Author: Frederik Heber Date: Mon May 17 19:32:33 2010 +0200 TESTFIX: Changed return code on wrong arguments from 255 to 134. - boost::program_options returns 134, not 255 in case of invalid arguments. commit f65e1fecf1431cd336fb21966248bbb25b4aa5fc Author: Frederik Heber Date: Mon May 17 19:31:35 2010 +0200 FIX: list of arguments passed to ParseCommandLineOptions() should be unique. - converted list<> to set<> such that argument counters are unique. commit a779764488e271567f195eef285c14446c560663 Author: Frederik Heber Date: Mon May 17 19:31:00 2010 +0200 TESTFIX: testsuite looks for a very specific help message. - changed message in MapOfActions for Action help to this message. commit daa714c145cf3d58c83832bb88aec6d5e7fe68a9 Merge: f941b14 4917cc4 Author: Frederik Heber Date: Sun May 16 14:06:42 2010 +0200 Merge remote branch 'bespin/CommandLineActionMapping' into CommandLineActionMapping commit f941b14c7a92d23575eccdfcd7bbb7ef127d1bad Merge: 97ebf8b 12872df Author: Frederik Heber Date: Sun May 16 00:14:44 2010 +0200 Merge branch 'FixTesselationTestDiff' into CommandLineActionMapping commit 12872df33639e521d4b0225d6064ea91bd4f18e8 Author: Frederik Heber Date: Sun May 16 00:11:50 2010 +0200 FIX: Don't compare tesselation files directly but rather sorted list of triangle nodes. - As the order of the triangle's creation is not fixed (unknown why), the order of the triangle nodes in the tesselation files is not fixed. - Hence, checking by diff'ing whether it's the same as the reference is not sensible. - Now, we pick out the triangle nodes, sort them and compare against reference. commit 97ebf8b2670d891c06f34ede7594c6708e07d886 Author: Frederik Heber Date: Fri May 14 22:14:27 2010 +0200 Added all commands defined in ParseCommandLineOptions() as Actions. - Actions are not yet used, except verbose, version and help. - Files are present and included in Makefile.am - not unit tests written so far - no action has been tested so far (except for MapOfActions) - structure introduced to to transition from ParseCommandLineOptions to actions. - program name and config file are fixed arguments. Signed-off-by: Frederik Heber commit 498c519f5f85d12aba5dc98b7adde3d2c7f45c5b Merge: 50dfdae cee0a17 Author: Frederik Heber Date: Fri May 14 21:57:06 2010 +0200 Merge remote branch 'bespin/FixTestRunnerClient' into CommandLineActionMapping commit 4917cc47b998f048c7f61a1a4ba94748ca92aad2 Merge: 50dfdae cee0a17 Author: Frederik Heber Date: Fri May 14 21:55:36 2010 +0200 Merge branch 'FixTestRunnerClient' into CommandLineActionMapping commit cee0a17a1e62832f65ac6bb6775b3263ef3122d0 Author: Frederik Heber Date: Fri May 14 21:53:36 2010 +0200 FIX: TestRunner is broken when TestRunnerClient.[h|cpp] can not be found. - config.h is included (has define HAVE_ECUT) - UnitTestMain.cpp is included if HAVE_ECUT is not set Signed-off-by: Frederik Heber commit de8e451f9ad5eaab2568025e291c290ca4ec1ddd Author: Frederik Heber Date: Wed May 12 11:47:20 2010 +0200 Added explanation to various UIElements. - documentation in CommandLineParser.hpp on how to create new actions to appear by doxygen documentation. - explaination of UIFactory, Dialog and Query. Signed-off-by: Frederik Heber commit 50dfdae6d8f0ccc9165dcc2f73a1adcd35dd66e1 Author: Frederik Heber Date: Sun May 9 14:00:08 2010 +0200 Added VersionAction. - new CmdAction/VersionAction that prints the ESPACKVERSION using EmptyQuery. - in CommandLineWindow populater functions for all Action types have been added. Signed-off-by: Frederik Heber commit 86466e070d1b66f70981d199068ca4eb345320b0 Author: Frederik Heber Date: Sun May 9 13:15:17 2010 +0200 new query class EmptyQuery for showing text messages. - new class in Dialog EmptyQuery and function queryEmpty to install and register - specializations added to Text and CommandLine UI - new class EmptyTextQuery that prints "title:description" to console - new class EmptyCommandLineQuery that prints "title:description" to console - FIX: CommandLineDialog was so far lacking the added _description parameter - FIX: CommandLineUIFactory::makeDialog() was returning NULL instead of available new CommandLineDialog - HelpAction now uses EmptyQuery to show the help message Signed-off-by: Frederik Heber commit 148d8f042c90bf58b016bf5fd1feec9a2b925406 Author: Frederik Heber Date: Sun May 9 00:59:14 2010 +0200 FIX: cleanup() still deleted configuration although is part of the World now. - note: HelpAction is working! (i.e. molecuilder -h, or molecuilder --help prints help and exits) commit bcd0729d739a3d164c82e6ae9c756aeca8ec236a Author: Frederik Heber Date: Sun May 9 00:57:18 2010 +0200 FIX: wrong use of Singleton pattern for CommandLineParser. - we set _may_create to false, which is only needed for Factories. - if we set to true, then we have to make constructor and destructor private and introduce the Singleton<> as friend. - BUGFIX: setOptions() was called with internal argc,argv instead of given parameters in CommandLineParser::Run(). commit d90762f553a3a92fdd57a313cd732767d945cc01 Author: Frederik Heber Date: Sun May 9 00:52:19 2010 +0200 Rewrote all CommandLineDialog's Query... to use the prorgam_options::vm. - we scan for the given title of the Query in program_options::vm and return the value. - in case of molecule we use MoleculeIdDescriptor. - in case of vector, new vector is created and components initialized from vector - in case of element we use Periodetafel::FindElement() Signed-off-by: Frederik Heber commit 4380afb3a800522b34cadb57cb8428e36bee274f Author: Frederik Heber Date: Sun May 9 00:51:22 2010 +0200 CommandLineWindow::display() goes through all Actions in ActionRegistry. - we check whether title of Action can be found in program_options::vm and if so, execute Action. Signed-off-by: Frederik Heber commit e3ecc1abd0ddd62a2dfc2aa75739cd9a03141338 Author: Frederik Heber Date: Sun May 9 00:00:57 2010 +0200 New HelpAction that will print the help from boost::program_options. - new class CommandLineHelpAction that will print the boost::program_options help - therefore CommandLineParser::visible had to be made public - CommandLineHelpAction is instantiated in CommandLineWindow::populateParserActions() commit fa56f00d317e981e0d73607b8a0861b1088fd307 Author: Frederik Heber Date: Sun May 9 00:00:16 2010 +0200 ActionRegistry now is iterable due to new functons getBeginIter() and getEndIter(). Signed-off-by: Frederik Heber commit 808fd3b9b29a086418d64f85da19ca7f14e55a0f Author: Frederik Heber Date: Sun May 9 00:00:03 2010 +0200 performUndo/Redo were missing for ParserLoadXyzAction and ParserSaveXyzAction, added stubs. Signed-off-by: Frederik Heber commit d893f79361685f6c7211b58647e4225285583faa Author: Frederik Heber Date: Sat May 8 23:59:27 2010 +0200 removed menuPopulaters from MainWindow. - menuPopulaters is too specific to TextUIFactory. - for CommandLineUIFactory a different structure was needed. - the shift of struct menuPopulaters inside of class MainWindow makes it superflous. Signed-off-by: Frederik Heber commit 8e1f7afc1ebe0013bd96a58b79957fdade051cb8 Author: Frederik Heber Date: Sat May 8 22:30:27 2010 +0200 class config added to World. - World now has the global configuration. - new function World::getConfig(). - TextWindow::TextWindow() uses thr above to obtain the configuration. Signed-off-by: Frederik Heber commit 4a75d9fe88b150cd8a65bf75e04c21f37e355b28 Author: Frederik Heber Date: Sat May 8 22:14:04 2010 +0200 ...UIFactory::makeMainWindow() now has only a single parameter, namely menuPopulaters. - as molecules and periodentafel can be accessed globally from singleton World, there is no need to pass these around anymore. - typedef MenuMaker and populateEditMoleculesMenu() equally stripped. commit ecb799f93fbb2fa0d7303a32021e627c4640f375 Author: Frederik Heber Date: Sat May 8 22:06:45 2010 +0200 shortened NAME of ParserLoadXyz and ParserSaveXyz actions, as it is the key in the ActionRegistry. Signed-off-by: Frederik Heber commit c6efc1bebb2dfa54bcc55b4be6a63f1b8b1eb9d2 Author: Frederik Heber Date: Sat May 8 20:40:49 2010 +0200 Begin of Refactoring of ParseCommandLineOptions(). - new singleton class CommandLineParser which wraps boost's program_options - main() uses the new CommandLineParser and calls UIFactory with CommandLine specizliation if commands detected. - files added toe Makefile.am - BOOST_PROGRAM_OPTIONS added to configure.ac - BOOST_PROGRAM_OPTIONS_LIB added to molecuilder/src/Makefile.am Signed-off-by: Frederik Heber commit 18eecfae17fd836c83b37d4b2f283254e413cadc Author: Frederik Heber Date: Sat May 8 20:39:10 2010 +0200 minor change: put entries in molecuilder/src/unittests/Makefile.am into alphabetical ordering and also single-tab indenting Signed-off-by: Frederik Heber commit 03bb998b19ff3476cb46cd730ffbbf4258d54389 Author: Frederik Heber Date: Sat May 8 20:36:22 2010 +0200 Introducing small actions. - new directory MoleculeAction to contain actions manipulating molecules. - small_actions.?pp renamed to MoleculeAction/ChangeNameAction.?pp - classes ChangeMoleculeName... renamed to MoleculeChangeName... - builder.cpp: populateEditMoleculesMenu() adapted accordingly. - new parser actions and new directory ParserAction - LoadXyzAction - SaveXyzAction - new variables for all grouped actions in molecuilder/src/Makefile.am - all files added to Makefile.am Signed-off-by: Frederik Heber commit a2ab15ba2cc94cbece043d75b16c7c3e7c81f308 Author: Frederik Heber Date: Sat May 8 20:30:53 2010 +0200 Extended UIFactory to a CommandLine derivate. - Dialog now has besides the title also a description, which however may be left empty. - added standard files for CommandLineUIFactory, CommandLineDialog, CommandLineWindow and CommandLineStatusIndicator. - also all added to Makefile.am, compiles fine. Signed-off-by: Frederik Heber commit efc3cb9ffa0e3dc29c97a339e0879a611a41bf3f Author: Frederik Heber Date: Sat May 8 20:27:57 2010 +0200 minor change: put entries in molecuilder/src/Makefile.am into alphabetical ordering and also single-tab indenting Signed-off-by: Frederik Heber commit 6d789df588a0f8ea0b282dc989b29a5fe69f76eb Merge: 68f03de bdedb12 Author: Tillmann Crueger Date: Sat May 8 14:48:58 2010 +0200 Merge commit 'Gitosis/StructureRefactoring' into StructureRefactoring commit 68f03de65d20f5bc62721f02e90844545a292e53 Author: Tillmann Crueger Date: Sat May 8 14:47:57 2010 +0200 FIX: Memory corruption in particleInfo class commit b9b604056c3887ec9d83c4814e5d8b0c68daabc1 Merge: bdedb12 b8d4a36 Author: Frederik Heber Date: Sat May 8 14:17:30 2010 +0200 Merge branch 'StateAndFormatParser' into CommandLineActionMapping Conflicts: molecuilder/src/Makefile.am molecuilder/src/tesselation.cpp molecuilder/src/unittests/Makefile.am The following conflicts had to be resolved: - molecuilder/src/Makefile.am had an old version of the HEADER definition which would not be merged automatically. ${PARSERHEADER} was missing. - molecuilder/src/unittests/Makefile.am had an blank line too much - TesselPoint::TesselPoint() had an older version where TesselPoint::Name was initialized to "-" instead of NULL. The latter should be correct due to missing delete(Name) in destructor. - compilation errors arose due to the private nature of Vector::x[] introduced in the branch VectorRefactoring. This has been fixed in XyzParser, TremoloParser and the ParserUnitTest. - ParserUnitTest runs fine. Signed-off-by: Frederik Heber commit bdedb126fe1a1073239174c61698ac3e49dc53b1 Author: Frederik Heber Date: Sat May 8 13:33:50 2010 +0200 Change of the Tesselation testsuite. - tests C16_0Torus, cluster, round_cluster removed (they need too long and don't add much safety). - all tests have been extended by the following radii: 1.5, 2, 2.5, 3, 3.5 and 25. - standard tesselations for all radii added. - diff is re-introduced but should be changed by a more sensible check (i.e. checking the tesselations not the file structure). Signed-off-by: Frederik Heber commit b8d4a36310666e7e35fa9d7064e994e48d9b0e54 Author: Saskia Metzler Date: Sun May 2 18:47:18 2010 +0200 Tremolo format parser commit 6f646daac2a79d773e6c693f4b1be99293a5b3a1 Author: Tillmann Crueger Date: Fri Apr 30 16:01:28 2010 +0200 Added a line class that represents one dimensional subspaces commit fa5a6afe5abec6b36502dfd0ee72e520831287b7 Author: Tillmann Crueger Date: Fri Apr 30 15:33:12 2010 +0200 Added unittests for planes commit 1513a7402fe19aa16ecbdf33eddd7a4e2e403ff8 Author: Tillmann Crueger Date: Fri Apr 30 12:07:23 2010 +0200 Declared the Vector class as single point spaces commit 005e18586d73b26dba1b60be3f7e42777f664c67 Author: Tillmann Crueger Date: Fri Apr 30 11:53:16 2010 +0200 Added const correctness to plane class and simplified interface commit 0e01b4d1d3f78f1c315ae92840cd9657481799c3 Author: Tillmann Crueger Date: Fri Apr 30 11:35:01 2010 +0200 FIX: small bug in the Plane::isContained() method commit 2cbe979219340e83dbe8f5f98c73fcef7c337d12 Author: Tillmann Crueger Date: Fri Apr 30 11:32:59 2010 +0200 Added exception specifiers to plane class commit 3cdd1646dce0ec74ac3a0a447635dc12e8b69841 Author: Tillmann Crueger Date: Fri Apr 30 11:23:37 2010 +0200 Added more Exceptions to the project to signal differen Math erorrs commit 2247a948dcf209ad31d8e876f040a37ae13d4500 Author: Tillmann Crueger Date: Fri Apr 30 10:26:28 2010 +0200 Added a class Space to represent general subspaces of R^3 (planes and lines) commit cdf8fbb689ef19e7da3a7b5ba93f051dfa3e50a1 Merge: c61c872 28c3510 Author: Frederik Heber Date: Thu Apr 29 23:25:44 2010 +0200 Merge branch 'FixMemDebug_strncpy' into StructureRefactoring commit 28c351085177bd0f8014422f461b534e27b03063 Author: Frederik Heber Date: Thu Apr 29 23:23:24 2010 +0200 FIX: strncpy was lacking cstring include. commit c61c8725850c6d02d926e8d32afdd26a187113b8 Author: Tillmann Crueger Date: Thu Apr 29 18:11:43 2010 +0200 Added a method that allows construction of three arbitrary points on a plane. commit 1829c4c468952cea89d8bceafd5e4fe3acaefe96 Author: Tillmann Crueger Date: Thu Apr 29 18:03:30 2010 +0200 FIX: Bug that caused memory corruption in Vector::GetOneNormalVector() when a two component system was given commit 1f7864b5174f61bde9636b387233ebf96161518c Author: Tillmann Crueger Date: Thu Apr 29 17:30:55 2010 +0200 FIX: Stupid bug in the Debug-new that destroyed some memory commit d7963907ebbad1cc3ce39e6e25909d13d2b83c40 Author: Tillmann Crueger Date: Thu Apr 29 16:38:29 2010 +0200 Improved comments for the memory tracker commit 8cbb9792c39564b3033f03b7e9dc61143585d5f4 Merge: 632bc3e 753f026 Author: Tillmann Crueger Date: Thu Apr 29 15:55:21 2010 +0200 Merge branch 'VectorRefactoring' into StructureRefactoring Conflicts: molecuilder/src/Legacy/oldmenu.cpp molecuilder/src/Makefile.am molecuilder/src/analysis_correlation.cpp molecuilder/src/boundary.cpp molecuilder/src/builder.cpp molecuilder/src/config.cpp molecuilder/src/ellipsoid.cpp molecuilder/src/linkedcell.cpp molecuilder/src/molecule.cpp molecuilder/src/molecule_fragmentation.cpp molecuilder/src/molecule_geometry.cpp molecuilder/src/molecule_graph.cpp molecuilder/src/moleculelist.cpp molecuilder/src/tesselation.cpp molecuilder/src/tesselationhelpers.cpp molecuilder/src/unittests/AnalysisCorrelationToSurfaceUnitTest.cpp molecuilder/src/unittests/bondgraphunittest.cpp molecuilder/src/vector.cpp molecuilder/src/vector.hpp commit 753f026a17e1d05846e903705efe2ac582c0d091 Author: Tillmann Crueger Date: Wed Apr 28 16:52:56 2010 +0200 Removed Algebraic Hierachy from vector. commit 632bc3e6a3aa135a6299c878abd3a7b67f1b355c Author: Tillmann Crueger Date: Wed Apr 28 15:31:57 2010 +0200 Added a small memory tracker to the programm. commit 5f612eea044e919bffc18a83cd7ddd35f981c765 Merge: 13d5a97 c695c94 Author: Frederik Heber Date: Tue Apr 27 16:25:42 2010 +0200 Merge branch 'Analysis_PairCorrelation' into StructureRefactoring Conflicts: molecuilder/src/Makefile.am molecuilder/src/World.cpp molecuilder/src/World.hpp molecuilder/src/boundary.cpp molecuilder/src/builder.cpp molecuilder/src/log.cpp molecuilder/src/moleculelist.cpp molecuilder/src/periodentafel.cpp molecuilder/src/tesselation.cpp molecuilder/src/unittests/AnalysisCorrelationToSurfaceUnitTest.cpp molecuilder/src/unittests/Makefile.am molecuilder/src/unittests/bondgraphunittest.cpp molecuilder/src/unittests/gslvectorunittest.cpp molecuilder/src/unittests/logunittest.cpp molecuilder/src/unittests/tesselation_boundarytriangleunittest.hpp molecuilder/src/vector.cpp molecuilder/tests/Tesselations/defs.in Conflicts have been many and too numerous to listen here, just the few general cases - new molecule() replaced by World::getInstance().createMolecule() - new atom() replaced by World::getInstance().createAtom() where appropriate. - Some DoLog()s added interfered with changes to the message produced by Log() << Verbose(.) << ... - DoLog() has been erroneously added to TestRunner.cpp as well, there cout is appropriate - ... Additionally, there was a bug in atom::clone(), sort was set to atom::nr of the atom to clone not of the clone itself. This caused a failure of the fragmentation. This merge has been fully checked from a clean build directory with subsequent configure,make all install and make check. It configures, compiles and runs all test cases and the test suite without errors. Signed-off-by: Frederik Heber commit c695c94acd7f6fb7cff4a57d3acd27a99260ce7b Merge: 260c291 4918764 Author: Frederik Heber Date: Mon Apr 26 20:19:38 2010 +0200 Merge branch 'FixMolecuilderTestsTesselations_defs' into Analysis_PairCorrelation commit 4918764d5f9ad800cf1507450f4ee80856aaeff4 Author: Frederik Heber Date: Mon Apr 26 20:13:40 2010 +0200 FIX: Tesselation does not work in first run due to still present directories (defs.in in molecuilder/tests/Tesselations) - now all NonConvexEnvelope*-files, .xyz- and .dbond--file is removed in CLEANUP of defs.in - also there has been an additional erroneous files tecplot.phy in the case 1_2-dimethylbenzene Signed-off-by: Frederik Heber commit 260c2914633232cd5779aa590938d8580093a085 Author: Frederik Heber Date: Mon Apr 26 19:25:44 2010 +0200 Regression test of Tesselation for test case 15 "Big non-convex envelope" changed. - the sequence of the triangles had changed due to the changes in the algorithm. The surface itself has not changed (checked). Signed-off-by: Frederik Heber commit d6c4852478486ca47c1d76135f0f112ac8432077 Merge: b8c9d83 70378e0 Author: Frederik Heber Date: Mon Apr 26 18:38:47 2010 +0200 Merge branch 'FixWorld_wrongauthor' into Analysis_PairCorrelation commit 70378e0022d1bf398dbed67806604b9cadb6026a Author: Frederik Heber Date: Mon Apr 26 18:38:14 2010 +0200 FIX: Author of World.cpp has been wrongly set (by eclipse) to heber instead of crueger. Signed-off-by: Frederik Heber commit b8c9d83bb0cc97b1525626cec620fdde02ec69e7 Merge: 6cd16bc fd179fd Author: Frederik Heber Date: Mon Apr 26 18:35:42 2010 +0200 Merge branch 'FixWorld_differentdefaultcell_size' into Analysis_PairCorrelation Conflicts: molecuilder/src/World.cpp Conflict has been due to added cell_size initialization. commit fd179fd5d64c806adc39173b9bf6cbb44ffe8065 Author: Frederik Heber Date: Mon Apr 26 18:34:22 2010 +0200 FIX: cell_size in World has not been set to a default size, i.e. has been uninitialized. - cell_size is now set to {20,0,20,0,0,20}, the default value it was set to before. Signed-off-by: Frederik Heber commit 6cd16bc4b2635b48c1eb855a13b887a00af82259 Merge: fe6c3eb 6056f1f Author: Frederik Heber Date: Mon Apr 26 18:22:17 2010 +0200 Merge branch 'FixAnalysisBonds_carbonwrongZ' into Analysis_PairCorrelation Conflicts: molecuilder/src/unittests/analysisbondsunittest.cpp Conflict has been due to mixing of lines setting Z and vDw and CoV of carbon. Signed-off-by: Frederik Heber commit 6056f1f6a543f7dbfa9dde0b7705d6820addf1c4 Author: Frederik Heber Date: Mon Apr 26 18:19:32 2010 +0200 FIX: AnalysisBondsUnitTests has been broken due to Z of carbon same as of hydrogen. - carbon now has Z equal to 2. Signed-off-by: Frederik Heber commit fe6c3ebb308cd98263ce878b67158bb765693f51 Merge: 3b9e349 3d9df58 Author: Frederik Heber Date: Mon Apr 26 18:13:02 2010 +0200 Merge branch 'FixAnalysisCorrelation_zeroinitallbins' into Analysis_PairCorrelation commit 3d9df58fa479a3d17fada0e138f7a5e3aa5e1851 Author: Frederik Heber Date: Mon Apr 26 18:11:23 2010 +0200 FIX: AnalysisCorrelationToPointUnitTest has been broken due to init of all bins in range to zero. - number of bins is thus 3, not 2, though there are only two non-zero values, in AnalysisCorrelationToPointUnitTest::CorrelationToPointBinNoRangeTest() - also shifted and corrected (new parameter ofstream) OutputCorrelation() in front of ASSERT to allow checking in case of failure. commit 3b9e3493fade0a8429f762185dce340105f3ea8a Merge: ee7e252 c6394d0 Author: Frederik Heber Date: Mon Apr 26 18:04:41 2010 +0200 Merge branch 'FixAnalysisCorrelation_zeroinitallbins' into Analysis_PairCorrelation Conflicts: molecuilder/src/unittests/AnalysisCorrelationToSurfaceUnitTest.cpp There have been conflicts due to shifted OutputCorrelation() and being commented-out in one commit, not in the other though. Signed-off-by: Frederik Heber commit c6394d07942e077c77082bff7fb9f99306df5ccc Author: Frederik Heber Date: Mon Apr 26 18:00:24 2010 +0200 FIX: AnalysisCorrelationToSurfaceUnitTest has been broken since change of initialisizing bins to zero. - test of binmap size in CorrelationToSurfaceCarbonBinNoRangeTest() has to find 9, not 2 bins (due to init). There are still only two non-zero bins. - Shifted output of binmap in front of size() test as then the error can be spotted, otherwise execution is interrupted before binmap is output. Signed-off-by: Frederik Heber commit ee7e252e66e5303e8480b6ab88de56905f963244 Merge: b5c2d79 e5ad5c3 Author: Frederik Heber Date: Mon Apr 26 17:47:54 2010 +0200 Merge branch 'FixBondGraphUnitTest_hydrogencarbon' into Analysis_PairCorrelation Conflicts: molecuilder/src/molecule_graph.cpp There have been conflicts due to LinkedNodes now being local in context LinkedCell. Signed-off-by: Frederik Heber commit e5ad5c3df7c9095bb2e7bac5d6425aa9d5c295b3 Author: Frederik Heber Date: Mon Apr 26 17:42:45 2010 +0200 BUGFIX: BondGraphUnitTest was not working. Changes: - atoms are now carbon, not hydrogen - added covalent and van-der-Waals radii to element creation - FIX: carbon now has Z = 2. - added test case for NULL BondTable (i.e. from covalent radii) Signed-off-by: Frederik Heber commit 13d5a97104c8a5c13d2e78b8d620f8f625a062ac Author: Tillmann Crueger Date: Mon Apr 26 15:49:59 2010 +0200 Added macros that allow type safe casting using the Assert mechanism commit 8bb2fdac28a006989f0feae29f712cc826b109ee Author: Tillmann Crueger Date: Sun Apr 25 15:36:17 2010 +0200 FIX: Repaired some of the NDEBUG macros for ASSERT commit 8de8f7b299a3c2fc402aaddc75ea02cd83785773 Author: Tillmann Crueger Date: Sun Apr 25 15:16:09 2010 +0200 Made the input methods more robust to invalid inputs. commit 033a05dea520cc72044418c6e997d23c15418bf7 Author: Tillmann Crueger Date: Sun Apr 25 14:48:24 2010 +0200 Small improvements to Observer code commit ccacba2c5291cdd3b8dd37487372b1fbff7ed55c Author: Tillmann Crueger Date: Sat Apr 24 17:27:00 2010 +0200 Added methods for specialized Notifications from the Observer Framework commit b5c2d7967acac9af4702516eb19840fbca47017d Author: Frederik Heber Date: Fri Apr 23 10:09:40 2010 +0200 Don't exit when no starting triangle has been found. - The issue is that this is not a bug, but just a limitation of the so-far employed algorithm for obtaining a starting triangle. - If we exit, no .dat file is written, not even an empty one, indicating a perpetual running of the routine, which it does not. Signed-off-by: Frederik Heber commit b1a6d85a26df47e4dee079a76deafefb5dad552f Author: Frederik Heber Date: Thu Apr 22 22:09:48 2010 +0200 BUGFIX in Tesselation::FindThirdPointForTesselation() - ThirdPoint of the base triangle must never have the smaller angle, but must always be the backside (i.e. the other center). - this fixes a bug with CNTorus (16,0) with (56,1) (l,r) working and (57,1) not, due to angle suddenly being 0 for the same as the base triangle. commit ce709706c3fffbf879b5a176c285e789f97d7218 Author: Frederik Heber Date: Thu Apr 22 17:47:22 2010 +0200 FIX: Tesselation::FindStartingTriangle() returns false when no triangle could have been created. - this may act in the future as the beginning to some mean of increasing radii or another way to find a starting triangle. commit cfe56d268fef163363819b54b51553e5ec95214b Author: Frederik Heber Date: Thu Apr 22 17:03:42 2010 +0200 BUGFIX of Tesselation::FindStartingTriangle() - second Point Temporary not initialised to NULL. - this caused a segfault with tesselating cluster with radius 1., as the second point added was not present actually. commit b0a5f12326a780d951acf8dedc559132ca922fac Author: Frederik Heber Date: Thu Apr 22 16:13:32 2010 +0200 BUGFIX of Tesselation::AddTesselationLine() - comparing Vector against Vector is numerically unstable. - Instead of checking the Vector of both Centers by operator==, we use DistanceSquared(). - This fixes a bug in tesselating bpti with radius 1.5, where three lines remained open due to not being correctly associated with their degenerated other sides. commit 620a3f003153866f96efb363bfba5564699acbfe Author: Frederik Heber Date: Thu Apr 22 16:10:08 2010 +0200 BUGFIX in Tesselation::FindThirdPointForTesselation() - regarding three points in a line - three points in a line, i.e. the baseline with the candidate on this extended line, is numerically unstable. - GetCenterofCircumCircle() warns already about "aum of angle"s - now, candidate is rejected if the distance from both baseline's endpoints to the NewPlaneCenter is not equal as it should be. - i.e. the error message present before has been converted into an additional check. - This solved problems with tesselating a CNT (6,0) with radius 1.5 which has lots of triples in a line. commit f04f11a7b99101e6d35061360e4ca6061b20dea2 Author: Frederik Heber Date: Thu Apr 22 16:07:14 2010 +0200 small changes to tesselation. - Tesselation::FindDegeneratedCandidatesforOpenLines() - sets CandidateLine::T to Tesselation::BTS, being the last added triangle. - Tesselation::AddCandidatePolygon() - remark about above added to call of function - Tesselation::FindCandidatesforOpenLines() - added assert to check that there is only one triangle attached to this CandidateForTesselation::baseline commit b40a93e770ee2969e2bdd4cc63e56a5205c664b9 Author: Frederik Heber Date: Thu Apr 22 16:05:32 2010 +0200 FindNonConvexBorder(): Instead of listing all open lines, just list those without candidates. commit 29955407eeb6f84cd775a755f6e7b4d9beba3aa5 Author: Frederik Heber Date: Thu Apr 22 16:02:09 2010 +0200 Changed verbosity of "sum of angle"-warning in GetCenterofCircumcircle() to 2 instead of 1. - This is in most case an error, but due to linearity of the involved three points. And we don't check it. - The check is done later by comparing the lengths from both baseline's endpoints to NewPlaneCenter, which have to be equal. commit a67d19a01c3b0bbb8bd6d255ed9a4ffbe37f3138 Author: Frederik Heber Date: Thu Apr 22 16:00:03 2010 +0200 Huge change: Log() << Verbose(.) --> DoLog(.) && (Log() << Verbose(.) << ...); Most of the files are affected, but this is necessary as if DoLog() says verbosity is not enough, all the stream operators won"t get executed which saves substantial amount of computation time. Signed-off-by: Frederik Heber commit 6613ec959229c059f4df050384fc4621ea87dcc0 Author: Frederik Heber Date: Wed Apr 21 13:51:53 2010 +0200 Rewrite of tesselation: treatment of degenerated triangles and polygons several tricks have been necessary to make it work for heptane: - AddDegeneratedTriangle() is not used, instead AddCandidateTriangle() gets told which OptCenter to use, i.e. which triangle side to add - afterwards, in the case of a polygon (multiple candidates for a baseline) we have to set the candidate of internal edges in the polygon to the next point, such that AddTesselationLine() picks the right one - The we fill other open lines, needed in case of a degenerated triangle - If CheckDegeneracy() - which removes all candidates from the ListOfPoints, not just the first - results in true - Then we call AddCandidateTriangle() for the other side of it - and again in the case of a polygon, set the candidate for the internal edge accordingly. - new - Tesselation::FindCandidatesforOpenLines() - checks for OpenLines with no candidates and calls FindNextSuitableTriangle() for each - Tesselation::FindDegeneratedCandidatesforOpenLines() - sets the candidate of an open line between two points to a given point (for above polygons) - enum centers is either Opt or OtherOpt for normal or back side of the triangle, used in AddCandidateTriangle() - associated changes: - Tesselation::CheckDegeneracy() - needs current CandidateForTesselation for Baseline's endpoints and candidate list (not just the current trianglre in TPS), removes these instead of TPS - lots of identation changes made by eclipse, bust mostly sensible, due to coding on other laptop before - Tesselation::AddCandidateTriangle() - picks OptCenter according to given enum centers - Tesselation::AddTesselationLine() - in polygon case, a base line may have multiple candidates, though with same OptCenter, we check all of these against desired ThirdNode - FindNonConvexBorder() - removed call of CorrectAllDegeneratedPolygons(), as they should be created correctly now Signed-off-by: Frederik Heber commit bc84ffc76ba4d3b32c0699d8504d57183a64c18f Author: Frederik Heber Date: Wed Apr 21 13:46:40 2010 +0200 Made some remaining cout's "info Log() << Verbose(.)"'s ... - changes in: MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs(), TriangleIntersectionList::GatherIntersectionsWithTriangles() and Vector::GetIntersectionOfTwoLinesOnPlane() commit 90f680c53e4ddbba28a2d848d6a36d17b1d66325 Author: Frederik Heber Date: Wed Apr 21 13:42:54 2010 +0200 FIX: errorLogger now has absolute verbosity (i.e. CRITIAL is whatever level of recursion printed to screen) - new function Verbose::DoErrorOutput() which does check only against given verbosityLevel, not plus Info:verbosity ad DoOutput() - operator<< of errorLogger - uses this function DoErrorOutput() - everything above or at verbositylevel of 2 two is prefixed with WARNING: - setVerbosity() does not set verbosity of errorLogger, is set to 2 in the code and is fixed - DoLog() and DoeLog() have their return value in parenthesis (no change, just safer) commit 711ac235cedd19a7f06cfb285964b12e50269c03 Author: Frederik Heber Date: Tue Apr 20 14:20:10 2010 +0200 Memory leak fixes and code cleanup after tesselation rewrite. - MEMFIX: - Tesselation::FindStartingTriangle() - BaseLine was not deleted when triangle had been created - Tesselation::FindStartingTriangle() - BaseLine was not deleted when no second point had been found - Tesselation::CorrectAllDegeneratedPolygons() - DegeneratedTriangles was not deleted - cleanup - BoundaryTriangleSet - removed function SetTopNode() and variables top and AngleFromTop - Tesselation::AddDegeneratedTriangle() - returns now void, the second triangle is not needed - Tesselation::AddDegeneratedTriangle() - removed comment out parts and switch cases, also setting top and AngleFromTop - Tesselation::AddDegeneratedTriangle() - open lines from second triangle are associated to second triangle - Tesselation::AddCandidateTriangle() - removed setting of top and AngleFromTop commit a26ca5140652c255825d40c6ec097d98b9ff01c1 Author: Frederik Heber Date: Tue Apr 20 14:19:24 2010 +0200 Fixed a warning in BondGraph::LoadBondLengthTable() due to missing parenthesis. commit b60a29bb0956cffca4efd9bd9eab1da4ac478f14 Author: Frederik Heber Date: Tue Apr 20 12:35:15 2010 +0200 WriteTecplotFile() checked whether Tesselation::LastTriangle is not NULL. commit f07f86dfd5c3d53451892e6e07e8f3b5b79e84dd Author: Frederik Heber Date: Tue Apr 20 11:26:30 2010 +0200 Rewrite of tesselation procedure: treatment of degenerated triangles. The central idea is that when matching open lines are present, then we have to check whether candidate matches desired ThirdPoint and that the calculated OptCenter matches as well. The latter is essential for degenerated triangles, that can only be decerned by their (Other)OptCenter. - BoundaryTriangleSetCheckDegeneracy() moved back to Tesselation and gets points from TPS.- - Tesselation:.AddCandidateTriangle() - candidates are now in TPS - sole parameter is CandidateLine which contains other data to be stored in the new triangle. - which is done here not in AddCandidatePolygon() anymore - Tesselation::AddTesselationLine() - new parameter OptCenter to pick the right OpenLine if multiples present - functions adapted: Tesselation::RemovePointFromTesselatedSurface(), Tesselation::AddBoundaryPointByDegeneratedTriangle(), Tesselation::CorrectAllDegeneratedPolygons() - when an open line is present, we check whether the candidate matches ThirdPoint and OptCenter's match as well - FIX: CandidateForTesselation::CheckValidity() - endpoint and candidate inside check have both been wrong way round (< instead of >) - MYEPSILON replaced by HULLEPSILON (there are case with 1.16e-13) - Tesselation::FindStartingTriangle() - if one axis fail for obtaining a starting triangle, the other two are tried as well - For this BaseLine is now a pointer, allocated newly for each axis - Tesselation::AddCandidatePolygon() - everything is done in either AddCandidateTriangle() or AddDegeneratedTriangle() - only setting TPS to the current three endpoints and calling CheckDegeneracy() remains - Tesselation::AddDegeneratedTriangle() - parameter triangle replaced by CandidateLine - no more LineCase et al, but subsequent creation of two triangles and everything done in AddTesselationLine() - FIX: Tesselation::FindThirdPointForTesselation() - we check whether we actually have candidates before CheckValidity() is called. Asparagine is now tesselated correctly from radius 1.5 up to 25. commit 061b06f8530350ff81a7566f11cc3defeed3d984 Author: Frederik Heber Date: Tue Apr 20 11:21:51 2010 +0200 BUGFIXES: LinkedCell::SetIndexToNode() had wrong boundaries in zero case, LinkedCell::GetPointsInsideSphere() took only half the right radius - BUGFIX: LinkedCell::SetIndexToNode() - upper and lower were set to 0 instead of n[i] when step=0 only worked - BUGFIX: LinkedCell::GetPointsInsideSphere() called GetallNeighbours() with RADIUS instead if 2.*RADIUS commit d5fea7a6cc54da0d3f5270434d5c95520d12570a Author: Frederik Heber Date: Fri Apr 16 15:52:20 2010 +0200 FIX: If multiple open lines can be chosen in AddTesselationLine(), then pick the one for which candidate matches first. - Tesselation::AddTesselationLine() adapted by setting a WinningLine and calling AddExistingTesselationTriangleLine() afterwards. - therefore, we need additional parameter which is the third point. - Tesselation::AddDegeneratedTriangle() adds itself to CandidateForTesselation of its open lines. commit 474961217a06b448d3cee3f8771fba98ec83555f Author: Frederik Heber Date: Fri Apr 16 14:26:16 2010 +0200 New approach to degenerated triangles: Recognize on creation and add both sides at once. - FindNonConvexBorder(): Approach with constructing a tree of smallest ShortestAngle has bee abandoned. - new function BoundaryTriangleSet::CheckDegeneracy(): Similar to CandidateForTesselation::CheckValidity() - checks by looking whether points are inside the sphere at OtherOptCenter - new function AddCandidateTriangle(): refactored out of AddCandidatePolygon() - new function AddDegenerateTriangle(): basically just checks which lines to take, newly created or existing ones and which - AddCandidatePolygon(): (renamed from AddCandidateTriangle()) - Now needs radius of sphere and LinkedCell structure (for the degenerated searches), adapted where called - calls AddCandidateTriangle() for one triangle in the polygon, subsequently calls CheckDegeneracy() - if appropriate, calls AddDegenerateTriangle() for the other side triangle - rename AlwaysAddTesselationTriangleLine() -> AddNewTesselationTriangleLine() - new function AddExistingTesselationTriangleLine(), refactored out of AddTriangleLine() commit ebb50e92f343ddc5757c15e6f311911268da15c7 Author: Frederik Heber Date: Thu Apr 15 17:22:51 2010 +0200 Renamed AddCandidateTriangle() -> AddCandidatePolygon() - AddCandidateTriangle() may actually add more than one triangle in degenerated Delauney case. commit bc3f2a8883e09abf804f9f9ab52fe2cc70f5e8cd Author: Frederik Heber Date: Thu Apr 15 16:57:49 2010 +0200 FIX: string instead of string.h was included for strcpy() commit 8a343929d462595f19dbd79fc4a77406c88f7b7a Author: Tillmann Crueger Date: Thu Apr 15 15:17:15 2010 +0200 Improved documentation for the Action pattern commit 1bd79efa209ce2203a329de83169d52ea290fa17 Author: Tillmann Crueger Date: Thu Apr 15 12:54:26 2010 +0200 Changed implementation of Vector to forward operations to contained objects commit 2733825a2c3f421fa61f61e58f954fa295e6e23d Author: Tillmann Crueger Date: Tue Apr 13 15:22:42 2010 +0200 Prepared interface of Vector Class for transition to VectorComposites commit f8bd7d3884f6cedfee5aabbd81b91b0a44140bce Author: Frederik Heber Date: Mon Apr 12 18:45:07 2010 +0200 FIX: changed the order in which triangles are picked next during tesselation. - FindNonConvexBorder(): we do a check based on AngleFromTop. We always want AngleFromTop to be smaller than the Runner's ShortestAngle. If then no open line can be found, we discard this criteria. - FindNonConvexBorder(): also we store initial starting triangle if DoSingleStepOutput commit 09898c37093ccfcb202b1fbcb57f502704896dc9 Author: Frederik Heber Date: Mon Apr 12 18:35:12 2010 +0200 Changes to BoundaryTriangleSet and CandidateForTesselation. - BoundaryTriangleSet: - new member variable top which references the triangle we have been "tesselated from" - new member variable AngleFromTop which stores the angle that was used during tesselation from top - new member function SetTopNode() - Tesselation::AddCandidateTriangle() sets top and AngleFromTop - CandidateForTesselation: - new member ThirdPoint contains third point of triangle whose baseline is the base line - new member T which contains the whole triangle - constructor receives this third point additionally - destructor does not set Baseline to NULL (due to being const) - BUGFIX: CheckValidity() checks only OptCenter, other is not valid anyway!, did not went through pointlist at all (begin, begin), some verbosity changes, added animate_sphere script call - Tesselation::FindThirdPointForTesselation() sets ThirdPoint - Tesselation::FindNextSuitableTriangle() sets T - BUGFIX: Tesselation::FindThirdPointForTesselation() clear CandidateLine.pointlist, which seemed to have contained old candidates from old runs. - Tesselation::FindNextSuitableTriangle(): tesselPoint ThirdNode is now a BoundaryPointSet ThirdPoint (which has a name!) Signed-off-by: Frederik Heber commit ffe885d4a42092788786723c1711831629789caa Author: Frederik Heber Date: Mon Apr 12 18:25:50 2010 +0200 BUGFIX: LinkedCell::GetPointsInsideSphere() did not work if center of sphere was outside of LinkedCell's domain. - new function LinkedCell::SetClosestIndexToOutsideVector() similar to LinkedCell::SetIndexToVector(), only vector may be outside of domain. Then, closest cell is taken and minimum distance calculated. - LinkedCell::GetPointsInsideSphere() uses LinkedCell::SetClosestIndexToOutsideVector() instead of LinkedCell::SetIndexToVector() commit 72e7faca3bcf25ab3ecf4cbdb09c889f2985787f Author: Tillmann Crueger Date: Fri Apr 9 16:45:49 2010 +0200 Started work on the VectorComposites commit 4f9e47db1137edf81831073a1fe536e3a06b1945 Author: Frederik Heber Date: Fri Apr 9 15:41:52 2010 +0200 Full-working LinkedCellUnitTest. - new unit test for class LinkedCell now checks all functions and runs fine. Signed-off-by: Frederik Heber commit a3696fd1bc3d13bd782c3786b4647a8407d74d8f Author: Frederik Heber Date: Fri Apr 9 15:41:26 2010 +0200 ofstream operators now check for Name being NULL and print NULL in that case. Signed-off-by: Frederik Heber commit 893bea4f34d6843af595d33ac7763c591e64648a Author: Frederik Heber Date: Fri Apr 9 15:39:03 2010 +0200 changes to LinkedCell::GetNeighbourBounds(), LinkedCell::GetallNeighbours() and LinkedCell::GetPointsInsideSphere() - LinkedCell::GetNeighbourBounds() has a step up to which step-nearest neighbours cells are included, heeding boundaries - LinkedCell::GetallNeighbours() uses GetNeighbourBounds() - LinkedCell::GetPointsInsideSphere() uses GetallNeighbours() and then removes all points outside sphere from this list. commit 82b71ada15772f942643cd59ff97a96b8a7f71bf Merge: fdd840f 9cf88c1 Author: Tillmann Crueger Date: Fri Apr 9 14:32:59 2010 +0200 Merge branch 'MenuRefactoring' into QT4Refactoring Conflicts: molecuilder/src/UIElements/UIFactory.cpp molecuilder/src/UIElements/UIFactory.hpp molecuilder/src/builder.cpp commit 9cf88c12264eb5a7b3d1f383cbeb3db314a03b0e Author: Tillmann Crueger Date: Fri Apr 9 14:15:58 2010 +0200 Changed UIFactory to use injector pattern to let it know about existing factories. commit dcea0ff41d177c467f6145566a26f86eb3065627 Author: heber Date: Fri Apr 9 11:14:20 2010 +0100 New Unit test for class LinkedCell. - this is just the skeleton, so far it does nothing useful. Signed-off-by: heber commit 734816af34f8c7429239e028a7a80e4081d008ab Author: heber Date: Fri Apr 9 10:55:39 2010 +0100 LinkedNodes is now declared inside LinkedCell and some new functions. - as prepraratory measure we placed LinkedNodes as typedef into LinkedCell class. This caused same namespace changes elsewhere where LinkedNodes is used. - new function GetallNeighbours() which performs going through linked cells. - new function GetPointsInsideaSphere() which performs going through linked cells and returns all neighbours up to a given distance to a given center. Note: New functions are not yet used elsewhere. Unit test has to be written beforehand. Signed-off-by: heber commit fdd840f75304796b41bf1a6c5bfe0a99b2f29f01 Merge: 68d781e a295d1e Author: Tillmann Crueger Date: Thu Apr 8 16:28:59 2010 +0200 Merge branch 'StructureRefactoring' into QT4Refactoring commit a295d1e6f8f5e96d80fab1f8dd96d22c12d51408 Author: Tillmann Crueger Date: Thu Apr 8 16:28:21 2010 +0200 More documentation for Action class added commit 2efa90bc8adc160c042069f38fe65a8bd9258496 Author: Tillmann Crueger Date: Thu Apr 8 16:00:11 2010 +0200 Added detailed documentation for the Action class commit 0a4f7fd0df08c7bf001c21de0e7b7462fb56da1d Author: Tillmann Crueger Date: Wed Apr 7 17:45:38 2010 +0200 Made data internal data-structure of vector class private - Replaced occurences of access to internals with operator - moved Vector-class into LinAlg-Module - Reworked Vector to allow clean modularization - Added Plane class to describe arbitrary planes in 3d space commit fe238cf71232d91769e9d08c5867eb5c16052491 Author: Frederik Heber Date: Thu Apr 1 20:52:09 2010 +0200 Enhanced CountHydrogenBridgeBonds() a bit. - new functions CheckHydrogenBridgeBondAngle() and CalculateAngle() - CountHydrogenBridgeBonds() now discards when two oxygen show each both a hydrogen (two test cases in CountBondsUnitTest.cpp for this) - this however also no effect over the criteria by Marry, Rotenberg and Turq. commit 388049e8a31cd0cd058d1ddd9577886a8a3c2fa8 Author: Frederik Heber Date: Thu Apr 1 14:42:07 2010 +0200 Moved functions CountBondsOfTwo(), CountBondsOfThree() and CountHydrogenBridgeBonds() from bondgraph.cpp to analysis_bonds.cpp Signed-off-by: Frederik Heber commit 4415da8b5d52d38b3578718b456b8c0b28cad75d Merge: 9131f32 f9352dc Author: Saskia Metzler Date: Thu Apr 1 14:16:29 2010 +0200 Merge Till's structure refactoring Merge commit 'till/StructureRefactoring' into StateAndFormatParser Conflicts: molecuilder/src/Makefile.am molecuilder/src/unittests/Makefile.am commit 62c9c0c2483b1a08eff78913d9f36d67e8168744 Author: Frederik Heber Date: Thu Apr 1 11:35:42 2010 +0200 Added output of test cases for visualization. Is commented out though. Signed-off-by: Frederik Heber commit dfe8ef3f8a081bf5a259359237ae9e5b9f66cdb1 Author: Frederik Heber Date: Tue Mar 30 20:49:01 2010 +0200 BUGFIX: CountHydrogenBridgeBonds() was half-broken, CountBondsOfThree() double-counted. - CountBondsOfThree() was counting O-H molecules as having a H-O-H and also a O-H-O triple bond because of a missing break. - CountHydrogenBridgeBonds() was broken in several places: - Checking for Hydrogen on the other oxygen atom is not part of the criteria by Marry, Rotenberg and Turq. - HydrogenFlag could have been set by previous atom making next hydrogen also a h-bridge bond. Found thanks to newly implemented unit test CountBondsUnitTest. Signed-off-by: Frederik Heber commit 9131f3237e4267925646cb453f950b49e3540f7f Author: Saskia Metzler Date: Tue Mar 30 15:22:20 2010 +0200 WIP tremolo parser commit f9352dcaf0cbc4cbcee464d7d03984eb5eeee659 Author: Tillmann Crueger Date: Fri Mar 26 16:13:31 2010 +0100 Added mechanism that deactivates undo and redo menupoint if not applicable commit 68d781e05c955813adeac99c094cf27f14b90f46 Merge: cd032d4 f6bbc6f Author: Tillmann Crueger Date: Thu Mar 25 14:36:36 2010 +0100 Merge branch 'MenuRefactoring' into QT4Refactoring Conflicts: molecuilder/src/Makefile.am molecuilder/src/defs.hpp commit f6bbc6fe2ddb7221bc4f6acc3efeef505cfb0301 Author: Tillmann Crueger Date: Thu Mar 25 14:08:39 2010 +0100 Added undo and redo menupoints TODO: make it possible to disable menupoints conditionally commit 5605032d8e19d603e79ac940ea3a26205e7e7fdc Author: Tillmann Crueger Date: Thu Mar 25 14:01:35 2010 +0100 Repaired code that was broken by merge commit 9848bad258f40a89bb332d796c0c40bdaa89fc99 Merge: b31bc44 975a116 Author: Tillmann Crueger Date: Thu Mar 25 14:00:29 2010 +0100 Merge branch 'StructureRefactoring' into MenuRefactoring commit 975a1166eddd2bdd29dd2ff9f0637ce8834b71d5 Author: Tillmann Crueger Date: Thu Mar 25 13:59:20 2010 +0100 Repaired broken unittest commit b31bc446e44e3bd112547bd6f6c98e4deebd860d Merge: 66e95ea d566405 Author: Tillmann Crueger Date: Thu Mar 25 13:01:58 2010 +0100 Merge branch 'StructureRefactoring' into MenuRefactoring commit d56640502d4cc2a4450b681ccb0bc442573add28 Author: Tillmann Crueger Date: Thu Mar 25 12:59:56 2010 +0100 Added full undo functioniality commit 5b0b98b2ea8b24976731e525dc2aa2811d18dc20 Author: Tillmann Crueger Date: Thu Mar 25 11:06:49 2010 +0100 Switched type of pointer used for ActionStates commit 67e2b3572734296ec6d1bd4e7c867fa823cee04f Author: Tillmann Crueger Date: Wed Mar 24 17:26:21 2010 +0100 Added methods that allow bookkeeping of actions for undo/redo methods commit 05a97c1f2c9e8ddf80a668a86107708aa36770e5 Author: Tillmann Crueger Date: Wed Mar 24 14:58:30 2010 +0100 Replaced some error conditions with ASSERTs commit c721129bba15cb7f2e3255bdf6f7c8df64cbc52a Author: Tillmann Crueger Date: Wed Mar 24 13:54:47 2010 +0100 Repaired GetMAxId() method of molecule commit ce1d8c6dd957c9a4ffa937e721e549badd23c4e5 Author: Tillmann Crueger Date: Wed Mar 24 11:27:37 2010 +0100 Added detailed instruction on how to use ASSERT() commit adc42b8134b08a947db2f24929ef450e6470041f Author: Tillmann Crueger Date: Fri Mar 19 17:24:47 2010 +0100 Made the cacheable always recalculate when the owner is in the process of updating (cherry picked from commit 6234ef6106a5d0b8c1d29976e4e4304c66bb5c8b) commit 4fb5a3f0f43733a24f210c3e9a5c666bd091f7dc Author: Tillmann Crueger Date: Fri Mar 19 17:13:28 2010 +0100 Improved Observer Framework to include methods to report the state - bool Observable::isBlocked() will tell if the Observer is currently updating itself - The Circle detection test now uses ASSERT to report when a circle was detected (can be caught by CPPUNIT) commit 052b8d0f457c092d6ce25003e75db72970ba2fb0 Author: Tillmann Crueger Date: Fri Mar 19 16:50:01 2010 +0100 Rebuilt Cacheables using the state pattern commit 5be0eb5b503e36533a617d7c857b0c9324a0e178 Author: Tillmann Crueger Date: Fri Mar 19 11:50:06 2010 +0100 Added more functionality to custom asserts. - Asserts allow now setting any choice as default behaviour - Asserts allow setting of hooks that have to be performed before the exit is done commit 760ef4a258435c48d94d371f74c03c5c5c7c6858 Author: Tillmann Crueger Date: Fri Mar 19 17:24:47 2010 +0100 Made the cacheable always recalculate when the owner is in the process of updating commit b64313e36c83a0a04f3ea0272076852e9bcd8016 Author: Tillmann Crueger Date: Fri Mar 19 17:13:28 2010 +0100 Improved Observer Framework to include methods to report the state - bool Observable::isBlocked() will tell if the Observer is currently updating itself - The Circle detection test now uses ASSERT to report when a circle was detected (can be caught by CPPUNIT) commit e0b6fd7a16e107779197cef07ad3b711cc457e33 Author: Tillmann Crueger Date: Fri Mar 19 16:50:01 2010 +0100 Rebuilt Cacheables using the state pattern commit f18185ccc3610b5c8c0eae54138d97f1e55c8bca Author: Frederik Heber Date: Fri Mar 19 15:03:54 2010 +0100 Implemented counting of bonds over all atoms. - new functions in bondgraph.cpp: CountBondsOfTwo(), CountBondsOfThree() - both are introduced into MergeMolecules(), case 'b' and 'B' Signed-off-by: Frederik Heber commit ea71760f1257d93e6396b87b269d71544d16a690 Author: Tillmann Crueger Date: Fri Mar 19 14:29:01 2010 +0100 FIX: Made AtomCount a Cacheable so that the number of atoms in a molecule will always be correct All unittests working. All Complete testcases fail. commit 80c63dfc81000104a9b183a1ba9f5565e15b9757 Author: Tillmann Crueger Date: Fri Mar 19 11:50:06 2010 +0100 Added more functionality to custom asserts. - Asserts allow now setting any choice as default behaviour - Asserts allow setting of hooks that have to be performed before the exit is done commit 8d27720451e7340d82da7537d832ffb204273b10 Author: Tillmann Crueger Date: Thu Mar 18 17:45:41 2010 +0100 Changed conditional criticalExit in constructor of BoundaryTriangleSet to Assertion. commit 24725c2fc8fd6c005751d91c920162a6e74b1f8c Author: Tillmann Crueger Date: Thu Mar 18 16:59:46 2010 +0100 FIX: repaired PairCorrelation() by using IDs assigned by the world instead of internal molecule numbers commit 53731fa36c4e43ccfbcc75e2b60b6036be2ec500 Author: Tillmann Crueger Date: Thu Mar 18 16:40:37 2010 +0100 Fixed two unittests by forcibly assigning numbers on Atoms in CreateAdjacencyList commit 1cbf477d77154171f9c093ad6d333a48cd3d068b Author: Frederik Heber Date: Thu Mar 18 16:29:54 2010 +0100 Introduced CountHydrogenBridgeBonds() function. - CountHydrogenBridgeBonds() in bondgraph.cpp counts hydrogen bridges in a system. - MergeMolecules has a new case 'h'. The placement is this menu is however nonsense and should be corrected, when MeasureAtoms has a MoleculeListClass as parameter instead of a single molecule. Signed-off-by: Frederik Heber commit f2bb0ffe6b4609ebd531d524d61604a99d4ec5fd Author: Tillmann Crueger Date: Thu Mar 18 16:32:00 2010 +0100 FIX: Repaired memory smashing in CreateAdjacencyList BROKEN: Unittests still fail commit 75ac0c5e42d4edfac5a3b6e0939f309270191119 Author: Tillmann Crueger Date: Thu Mar 18 15:48:20 2010 +0100 Added custom Assert makro that allows ignoring asserts commit 229e3ccb4e9cb5051f35390f07ad9812609ea0d4 Author: Tillmann Crueger Date: Thu Mar 18 15:48:20 2010 +0100 Added custom Assert makro that allows ignoring asserts commit c7b1e7cc5f71dc867ab9cd60f52387cc20f52e45 Merge: b48ba6e 8ab0407 Author: Frederik Heber Date: Thu Mar 18 12:39:57 2010 +0100 Merge branch 'FixGeneralizeStoreAdjacencyToFile' into Analysis_PairCorrelation commit b48ba6ea1ca00a1d01e06d07c7ada8ade3b7a415 Author: Frederik Heber Date: Thu Mar 18 12:39:21 2010 +0100 Shifted BONDTHRESHOLD from defs.hpp over to bondgraph.hpp and lowered to 0.4 Signed-off-by: Frederik Heber commit 8ab04072a27154b43480fa7e701691aeef336c95 Author: Frederik Heber Date: Thu Mar 18 12:34:39 2010 +0100 molecule::StoreAdjacencyToFile() and molecule::StoreBondsToFile() now take additional filename. - since ParseCommandLineOptions() has cases j and J which use the above functions, we have to generalize these functions to work also without a given path and with arbritrary filename. Signed-off-by: Frederik Heber commit 58ed4a7c2bc8ff58164d0438ee813b30de7a34da Author: Frederik Heber Date: Thu Mar 18 11:26:55 2010 +0100 Log() and eLog() are prepended by a DoLog()/DoeLog() construct. - Most of the run time (95%) is spent on verbosity that it is discarded anyway due to a low verbosity setting. However, the operator << is evaluated from the right-hand side, hence the whole message is constructed and then thrown away. - DoLog() and DoeLog() are new functions that check the verbosity beforehand and are used as follows: DoLog(2) && (Log() << verbose(2) << "message" << endl); Signed-off-by: Frederik Heber commit 7ee87fc14c8174aaa7e562acd4b38bbed5239316 Author: Frederik Heber Date: Thu Mar 18 11:21:13 2010 +0100 BUGFIX: DefaultName of molecule was too small an array. - We saw wrong molecule names such as "none@4", this is fixed. Signed-off-by: Frederik Heber commit 6e97e5a6b0503856e9b6e879ddf32a1028016550 Author: Tillmann Crueger Date: Wed Mar 17 15:53:26 2010 +0100 Added a generic Iterator that can be used to iterate only over certain parts of an internal data structure commit 745a85115338256436238e5f4ac69f413362c5af Author: Tillmann Crueger Date: Fri Mar 12 15:20:15 2010 +0100 Fixed memory leak in periodentafel commit ead4e6027f420d4abbcb4f74854b4daa8dad64ea Author: Tillmann Crueger Date: Fri Mar 12 14:16:01 2010 +0100 Made the periodentafel use STL-containers instead of custom llists commit c3dbe0f164703a2c4da1a1d7818c146f2b3ceb31 Author: Tillmann Crueger Date: Thu Mar 11 17:53:08 2010 +0100 Improved documentation for Singleton commit 0f6f3a2fa9484f91d921afb035cddfdb256bde6a Author: Tillmann Crueger Date: Thu Mar 11 16:17:29 2010 +0100 Small improvements to singleton pattern commit cd032d428ec733430510dfedd7dc4bcf1df63fd4 Merge: a77c96f ed58ad5 Author: Tillmann Crueger Date: Thu Mar 11 15:46:41 2010 +0100 Merge branch 'StructureRefactoring' into QT4Refactoring Conflicts: molecuilder/src/builder.cpp molecuilder/src/defs.hpp commit ed58ad584a17c2510df74004042b2452b8b42f01 Author: Tillmann Crueger Date: Thu Mar 11 15:29:04 2010 +0100 Made the errorLogger use the new Singleton framework commit aee1a3013f12e500c5025aaa69850fcc29933ad2 Author: Tillmann Crueger Date: Thu Mar 11 15:19:53 2010 +0100 Made logger class use the new Singleton framework commit e73a8a2f90ce3ebc52e5a08bae476c290ee4cee0 Author: Tillmann Crueger Date: Thu Mar 11 15:08:44 2010 +0100 Changed ActionRegistry to use the new Singleton Mechanism commit 7ca80618ed8bb20b2ffc293ef03e46c6b5299ae1 Author: Tillmann Crueger Date: Thu Mar 11 12:32:17 2010 +0100 Changed the mutex type used in the Singleton pattern to allow multiple locks in the same thread commit d2586382328211710e80bd41bf762f1dc0d9d61a Author: Tillmann Crueger Date: Thu Mar 11 12:21:55 2010 +0100 Added Unittest for Singleton pattern commit d7940eed393ef000764eb1d5dc9282588a111a23 Author: Tillmann Crueger Date: Thu Mar 11 11:37:32 2010 +0100 Made the UIFactory an instance of the Singleton Pattern commit 23b547e0a280f674d85f218c4cce67c6c3f2ee85 Author: Tillmann Crueger Date: Wed Mar 10 18:51:48 2010 +0100 Added generic singleton Pattern that can be inherited to any class making that class a singleton. commit a77c96f4ed702d9adfd764de713b4db0c2023488 Author: Tillmann Crueger Date: Fri Mar 5 11:26:16 2010 +0100 Started work on a tab view for Molecule Content commit cb2146212f0e6343f8c302f924a2e8bfb3401b6e Merge: 7dc1026 31af190 Author: Saskia Metzler Date: Fri Mar 5 14:45:35 2010 +0100 solve merge conflict Merge commit 'till/StructureRefactoring' into StateAndFormatParser Conflicts: molecuilder/src/unittests/Makefile.am commit 7dc1026fa042673a3afb826472ab3fa660390ba6 Author: Saskia Metzler Date: Fri Mar 5 14:33:45 2010 +0100 WIP commit ab4b55cc08f483f1cbbf9225a92e2996e8d60b39 Author: Saskia Metzler Date: Fri Mar 5 13:53:13 2010 +0100 the XYZ parser commit d3347e51ec76a8b2c512f9c40cd24e2a622a37da Author: Tillmann Crueger Date: Fri Mar 5 12:40:05 2010 +0100 FIX: repaired compiler problems for latest refactoring commit 9879f6f8e5ad9364ccd32e2d6735f2ffc89cf18d Author: Frederik Heber Date: Fri Mar 5 11:08:44 2010 +0100 Huge Refactoring due to class molecule now being an STL container. - molecule::start and molecule::end were dropped. Hence, the usual construct Walker = start while (Walker->next != end) { Walker = walker->next ... } was changed to for (molecule::iterator iter = begin(); iter != end(); ++iter) { ... } and (*iter) used instead of Walker. - Two build errors remain (beside some more in folder Actions, Patterns and unittest) in molecule_pointcloud.cpp and molecule.cpp - lists.cpp was deleted as specialization of atom* was not needed anymore - link, unlink, add, remove, removewithoutcheck all are not needed for atoms anymore, just for bonds (where first, last entries remain in molecule) - CreateFatherLookupTable() was put back into class molecule. - molecule::InternalPointer is now an iterator - class PointCloud: GoToPrevious() and GetTerminalPoint() were dropped as not needed. - some new STL functions in class molecule: size(), empty(), erase(), find() and insert() commit 31af190705ad6f16748534860be756c1d13b38c1 Author: Tillmann Crueger Date: Thu Mar 4 17:03:57 2010 +0100 Made the World Iterators conform to STL-Structure commit e87acf50f98112d75e2652d26e782186d90e5f4e Author: Tillmann Crueger Date: Thu Mar 4 16:22:56 2010 +0100 BROKEN: removed legacy AtomList from molecule class commit bd58fb2b24b4e60efc12ec92eea4888bf318d98e Author: Tillmann Crueger Date: Thu Mar 4 16:20:51 2010 +0100 Added an iterator pattern for observed Data structures commit 6e6e1060a418df49545378378991506d6ae25dea Author: Frederik Heber Date: Thu Mar 4 15:57:48 2010 +0100 BUGFIX: config::SaveTREMOLO() - TREMOLO does not like particle Id 0 - particle Id 0 are thrown away on saving by TREMOLO. Hence, we add one on each particle number and bond id and molecule number (i.e. counting from one). Signed-off-by: Frederik Heber commit 63b56a73e21b1784b8d53fca43194af559c7eece Author: Tillmann Crueger Date: Thu Mar 4 11:56:58 2010 +0100 Changed Name of the QTMoleculesView commit e6a9c182065a2c9e05f3e7d8e40b87878aa191a8 Merge: 6a661c8 66e95ea Author: Tillmann Crueger Date: Thu Mar 4 11:40:52 2010 +0100 Merge branch 'MenuRefactoring' into QT4Refactoring Conflicts: molecuilder/src/Makefile.am commit 66e95ead2481671ca5327eb6731a586ae0e2d542 Merge: a28a836 57adc72 Author: Tillmann Crueger Date: Thu Mar 4 11:34:52 2010 +0100 Merge branch 'StructureRefactoring' into MenuRefactoring commit 57adc722ba6d4dbc04bdd2fa77d696ce701237a7 Author: Tillmann Crueger Date: Thu Mar 4 11:33:44 2010 +0100 Added methods to query Molecules by ID commit 57f5cf66e79c1035c22cc13e2b499ac118b6994a Merge: 6bc51d7 88d5869 Author: Saskia Metzler Date: Thu Mar 4 10:49:45 2010 +0100 Merge commit 'till/StructureRefactoring' into StateAndFormatParser Conflicts: molecuilder/src/Makefile.am molecuilder/src/unittests/Makefile.am SOURCE and HEADER are both one long line and thus could not be merged automatically. commit 6bc51d7e039a246cef5026ea3b2aba64674a5b59 Author: Saskia Metzler Date: Thu Mar 4 10:24:36 2010 +0100 Work-in-progress commit of change tracker and parser commit 706f9b22062831f6fc386e4862c76d896c32988b Author: Saskia Metzler Date: Thu Mar 4 10:21:38 2010 +0100 Work-in-progress commit of parser and changeTracker commit 70429af98b7a60eccab50d1fbd763fee7d530c50 Merge: f42e951 b720910 Author: Frederik Heber Date: Wed Mar 3 20:17:58 2010 +0100 Merge branch 'FixDissectIntoSubgraphs_ConstructBondGraphcheck' into Analysis_PairCorrelation commit f42e951c3e2e0c51cf91130e6192c9c6711417fa Merge: 6e8dc28 85da4ea Author: Frederik Heber Date: Wed Mar 3 20:17:49 2010 +0100 Merge branch 'FixBinDataStartEnd' into Analysis_PairCorrelation commit 6e8dc28d62ece34c138a0fc8497e666bdc4b7389 Merge: 046783a caf4ba6 Author: Frederik Heber Date: Wed Mar 3 20:17:19 2010 +0100 Merge branch 'FixLinkedCellConstructor_Setempytcheck' into Analysis_PairCorrelation Conflicts: molecuilder/src/linkedcell.cpp Conflict was due to changes: - set->empty() check prepended by set== NULL - cout/cerr -> Log()/eLog() Signed-off-by: Frederik Heber commit 85da4ea11f7062dd89910b1599c99c2a9424cc65 Author: Frederik Heber Date: Wed Mar 3 20:14:31 2010 +0100 BUGFIX: in BinData() binmap should be initialized from start to end in all three cases not just in third. Signed-off-by: Frederik Heber commit 271e17edd356e78553feaa53e435fda094d20a46 Merge: 7908076 bd61b41 Author: Frederik Heber Date: Wed Mar 3 20:13:43 2010 +0100 Merge branch 'FixGetBin_tointeger' into FixBinDataStartEnd commit bd61b4123d6339083d04e167580d407cbf99c263 Author: Frederik Heber Date: Wed Mar 3 19:41:03 2010 +0100 BUGFIX: rounding imprecision let values appear twice in BinMap. - we fix this by always converting bin to integer and then back to double when putting into map in BinData() - GetBin returns integer Signed-off-by: Frederik Heber commit b72091007fb048354021b5b5be240f73a47cda77 Author: Frederik Heber Date: Wed Mar 3 19:43:55 2010 +0100 BUGFIX: MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() - check of return value BondGraph::ConstructBondGraph() was wrong way round - negate symbol "!" forgotten. Signed-off-by: Frederik Heber commit caf4ba69e6ca6a15e9b88c78000a01a9b1659cba Author: Frederik Heber Date: Wed Mar 3 19:37:28 2010 +0100 BUGFIX: LinkedCell::LinkedCell() - before set->empty() check whether set is not NULL. Signed-off-by: Frederik Heber commit 88d5869468621298db2b33f61023ef4301fd78eb Author: Tillmann Crueger Date: Wed Mar 3 18:47:40 2010 +0100 Added mechanisms that allow reuse of IDs and changing Ids of Atoms commit 1c51c861e1b8694410e5e4704ed0144951b98c2e Author: Tillmann Crueger Date: Wed Mar 3 16:46:03 2010 +0100 Added methods for querying molecules using descriptors commit 046783a553356e9a05c3b45658a6d81b7331ebcb Author: Frederik Heber Date: Wed Mar 3 15:46:13 2010 +0100 Default molecule name can be set via command line, BUGFIX: molecule::DepthFirstSearchAnalysis() seg'faulted on no atoms. Allow '-I' on empty configs: - molecule::DepthFirstSearchAnalysis(): check whether AtomCount==0 - molecule::molecule(): name is now not 'none' but copied from World::DefaultName - MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs(): - Check for false from BondGraph::ConstructBondGraph() - Check for Subgraphs or its successor being NULL - ParseCommandLineOptions(): first molecule only set active if molecules is not empty. new case 'X' for setting default molecule name: - new member variable World::DefaultName - constructor of molecule uses this default name - case 'X' in ParseCommandLineOptions() added for setting default name commit a837d053ff10e6e193a98401553d45448b6478c2 Author: Frederik Heber Date: Wed Mar 3 15:45:28 2010 +0100 BUGFIX: FillBoxWithMolecule() - bonds were added after adding of each atom, not after molecule. Signed-off-by: Frederik Heber commit dbb47413a2117951f3188ef85e30cc92c38d48b4 Author: Tillmann Crueger Date: Wed Mar 3 14:57:41 2010 +0100 Improved Doxygen documentation commit b343068e46322d6b11c4bb7e0e7aaa7246d69132 Author: Frederik Heber Date: Wed Mar 3 11:13:19 2010 +0100 singleton class World introduced, contains only cell_size from class molecule. - class World is actually code from Till Crueger from his branch StructureRefactoring. - has been introduced here in minimalistic form to allow molecule::cell_size to be outsourced to World::cell_size - access to cell_size can be obtained from anyhwere by invoking World::get()->cell_size - INFO: cell_size was placed in class molecule for the fragmentation procedure where the cell_size had to be individually adapted to each fragment. - all appearances have been changed accordingly. Where appropriate we have employed a const pointer onto cell_size. Signed-off-by: Frederik Heber commit c5805a6ee89c1ab92cf6544d5df6bd3f5fc5296a Author: Frederik Heber Date: Wed Mar 3 10:31:24 2010 +0100 FIX: allowing empty config files, and filling can deal with no molecules being present. FillBoxWithMolecule(): - Additional checks whether AtomCount>0 - FIX: CopyAtoms was not initialised to NULL, hence wrong atoms might get "bonded". - if TesselStruct or LCList are NULL, these refer to empty molecules not to an error - breaking when atom would be placed was wrong, just continue to next atom of filler molecule. config::LoadMolecule() - we do not performCriticalExit() when MaxTypes==0, indicating present config file with no atoms. commit cb85c2e23c34bb8b96ceb385c790c6a65fb325c1 Author: Frederik Heber Date: Tue Mar 2 17:12:19 2010 +0100 ManipulateAtoms() can turn atoms around bonds again, in ParseCommandLineOptions() case 'C' Binwidth can be specified. - ManipulateAtoms(): new submenu 't' to turn an atom around a neighbouring bond. - ParseCommandLineOptions(): case 'C' - now BinWidth can be specified. commit 8db5984e6a27b79db3e7303fda908ac9035d47f6 Author: Frederik Heber Date: Mon Mar 1 21:48:40 2010 +0100 New class TriangleIntersection List and (hopefully) final fix of CorrelationToSurface(). - Distances to surface were still calculated between the vector and the triangle plane not the triangle itself. Although functions such as BoundaryTriangleSet::GetClosestPointInsideTriangle had already been written. - As in class Tesselation there were many functions that all did the same: Calculate intersections between a point and all closeby triangles and then get the intersection or calculate this minimum distance and so ... - ... this was all put into a new class (in a new file): TriangleIntersectionList whose constructor scans all nearby triangles and put the calculates Intersections in the triangle into a list. - Functions as IsInside(), GetSmallestDistance(), GetClosestIntersection() and GetClosestTriangle() bring the desired functionality to the outside. - Respective functions in class Tesselation just make use of this new class and its member functions. - CorrelationToSurface() also directly instantiates this class to effectively use two of its functions. - Makefile.am has this new file in its SOURCES and HEADERS. - Tesselation:GetDistanceSquaredToSurface() -> Tesselation:GetDistanceToSurface(), FillBoxWithMolecule() has been adapted to this change. AnalysisCorrelationToSurfaceUnitTest: - still has errors in it, as the distance were wrong before (because with respect to triangle plane, not triangle). Hence, the test was corrected. Signed-off-by: Frederik Heber commit 30d9e7c524259d13971388d69a8299194ae02715 Author: Frederik Heber Date: Mon Mar 1 21:46:40 2010 +0100 Bigger change to FillBoxWithMolecule(). - BUG: Position check was only made for center of filler molecule without any translations, not on each atom. - BUG: Range was only from 0, to N[i]-1, not to N[0]. Although translations can also be in "negative" direction. - This is now changed, check is atom wise, all translations are taken into account. commit b74f7dfc3cab111e2e5fbfe28dffa528131e6a7c Author: Frederik Heber Date: Mon Mar 1 21:41:21 2010 +0100 FIX: ParseCommandLineOptions - case 'C' used wrong LC width, case 'F' nows parses filler from file. ParseCommandLineOptions: - case 'C': Linked Cell width was set to fixed double of radius and was hence uncorrelated to the BinWidth. This is bad for subsequent DistanceToSurface() searches which use LC. - case 'F': Filler molecules was encoded by hand so far, is now parsed from xyz file and the bond structure created by BondGraph. commit 821907fcd566e75b22fa05a9671d131f0fef93f0 Author: Frederik Heber Date: Mon Mar 1 21:28:32 2010 +0100 Added Vector Copy constructors, Vector::GetDistanceVectorToPlane() and Vector::DistanceToVector() makes use of it - Copy Constructors taking const pointers and const reference as argument - Vector::DistanceToVector() basically renamed to Vector::GetDistanceVectorToPlane() - Vector::DistanceToVector() uses the latter commit b11d3bed152ea5cc6a6964715aa2cf2520fb7e28 Author: Frederik Heber Date: Mon Mar 1 21:24:45 2010 +0100 Added operators and state checkers to GSLVector. - added operators +,-,*, +=, -=, *=, == and = - added IsZero() and IsOne(). - gslvectorunittest extended with state and operator test. Signed-off-by: Frederik Heber commit 6a661c84ddb70b8d99fb640bff150da9a095a18e Author: Tillmann Crueger Date: Fri Feb 26 15:52:16 2010 +0100 FIX: Some QT-Related memory leaks commit 2561df9603fa89c37a857881ef0c7679508c13a0 Merge: cbf01e6 a28a836 Author: Tillmann Crueger Date: Fri Feb 26 15:11:14 2010 +0100 Merge branch 'MenuRefactoring' into QT4Refactoring Conflicts: molecuilder/src/Makefile.am molecuilder/src/unittests/Makefile.am molecuilder/src/vector.cpp molecuilder/src/vector.hpp commit a28a83646ee0892ab8c12d63a649ee1d0b44820c Merge: 5a72431 a1510d5 Author: Tillmann Crueger Date: Fri Feb 26 15:01:57 2010 +0100 Merge branch 'StructureRefactoring' into MenuRefactoring Conflicts: molecuilder/src/UIElements/TextDialog.cpp commit a1510d5b76a932257363ed507f59a28cd93e9924 Merge: 1f22170 e6fdbe3 Author: Tillmann Crueger Date: Fri Feb 26 14:57:01 2010 +0100 Merge branch 'FreddiesRefactoring' into StructureRefactoring Conflicts: molecuilder/src/Patterns/Observer.cpp molecuilder/src/World.cpp molecuilder/src/boundary.cpp molecuilder/src/molecule_dynamics.cpp molecuilder/src/unittests/AnalysisCorrelationToPointUnitTest.cpp molecuilder/src/unittests/AnalysisCorrelationToSurfaceUnitTest.cpp molecuilder/src/unittests/AnalysisPairCorrelationUnitTest.cpp molecuilder/src/unittests/Makefile.am molecuilder/src/unittests/bondgraphunittest.cpp molecuilder/src/unittests/listofbondsunittest.cpp commit 1f22170b77da3dddeea87ecbaa98a3ee8603bfff Author: Tillmann Crueger Date: Fri Feb 26 14:04:59 2010 +0100 Small fixes commit 24a5e09f04efb019de433cb90728399e3a3c830a Author: Tillmann Crueger Date: Fri Feb 26 13:40:52 2010 +0100 Added -Wall flag and fixed several small hickups commit 7042f454d567e2b5ab6069b20134b2fef0f908bc Author: Tillmann Crueger Date: Fri Feb 26 12:47:16 2010 +0100 Changed the type of AtomIds and MoleculeIds to an opaque type commit e6fdbe351d84e5890c3e6056f3c678ec947d0b31 Author: Frederik Heber Date: Fri Feb 26 11:02:12 2010 +0100 MEMLEAK: In many tests World, MemoryUsageObserver, logger or errorLogger being singletons were instantiated but not destroyed. - in some cases respective includes had to be added. commit 5e528346fce5f94d79617270d297535340b80bc3 Author: Frederik Heber Date: Fri Feb 26 11:01:50 2010 +0100 FIX: Values have been used uninitialized. commit 5c859226ce6b4bc09fc8876473246d8ae02c04cd Author: Frederik Heber Date: Fri Feb 26 10:59:15 2010 +0100 MEMLEAK: TesselPoints and Vectors created during TesselationBoundaryTriangleTest::setUp() would not get free'd. - Delete of triangle only destroys triangle, its lines and edges, not the TesselPoints - New array *tesselpoints[3] introduced, which stores pointers to the created TesselPoints and free's them in tearDown(). - Allocated Vector's for the TesselPoints have to be deleted as well, as the TesselPoints normally only receive referencing pointers. commit 1ec0ac63d83df755053c48055c76f402e1c5c902 Author: Frederik Heber Date: Fri Feb 26 10:58:39 2010 +0100 MEMLEAK: Lots of Free() have been forgotten after Malloc's at start of test. commit b84d5d887c607974a6694af1e78cac21610ef23f Author: Frederik Heber Date: Fri Feb 26 10:55:28 2010 +0100 FIX: operator implementation of Vector algebra was wrong and caused memory leaks. - operator+, operator- and operator* were implemented as creating new Vectors and returning its pointer instead of creating an object and returning it as constant. This would cause memory leaks, as these pointers in complex algebraic expressions would never get free'd. - return values of operatorx= with x in {+,-,*} have been made const (suggested by Meyers' Effective C++) commit e3cbf97c293811b5928773af7f284b764b0a5796 Author: Frederik Heber Date: Fri Feb 26 10:54:46 2010 +0100 FIX: Values in FindNonConvexBorder() and molecule::ConstrainedPotential() were used uninitialized. commit aac3ef87f192e64ea709f56ccca66a2af5a41c9e Author: Frederik Heber Date: Fri Feb 26 10:54:12 2010 +0100 FIX: Replaced memoryusageobserverunittest.hpp include by correct memoryusageobserver.hpp commit cf1a078eef5d2d8b8e2b885b2c189c3438c2fc24 Author: Tillmann Crueger Date: Thu Feb 25 17:56:16 2010 +0100 FIX: repaired some access violation of STL-iterators in Observer and ActionRegistry commit cbc5fbee9bc58a85fd5fabd2d6648d52abe180a2 Author: Tillmann Crueger Date: Thu Feb 25 17:43:02 2010 +0100 Made the world solely responsible for creating and erasing molecules. commit 93c8edec6e217e70e348d05fa8a94e80f6fb8eb9 Author: Frederik Heber Date: Thu Feb 25 16:21:22 2010 +0100 MEMLEAK: mismatched delete/free, matrix in GSLMatrix::Transpose() was delete'd not gsl_matrix_free'd. commit d5af3e0a0d115abdddb56bb713435a7cfb057dc9 Author: Frederik Heber Date: Thu Feb 25 16:18:30 2010 +0100 FIX: constructor of element now is shortened and all its member variables initialized (thx to BondGraphUnitTest). commit 9d4c2000b03ca725f4141ae2b45d836326d54159 Author: Frederik Heber Date: Thu Feb 25 16:18:06 2010 +0100 MEMLEAK: Tesselation::CorrectAllDegeneratedPolygons() forgot to remove DegeneratedTriangles. commit 028c2eb520e9fa02c50f97aa4eb9aa5a4956d04e Author: Frederik Heber Date: Thu Feb 25 16:17:47 2010 +0100 MEMLEAK: World class did not neither signOff() nor remove its molecules_deprecated. commit f72703503b2232f1a88ca6d29f1b3ccbd56c97b2 Author: Frederik Heber Date: Thu Feb 25 16:06:38 2010 +0100 MEMLEAK: ActOnAllTest forgot to delete the copied VectorList Ref and the MemoryUsageObserver, and in ScaleTest() factors and inverses array were not Free'd. commit f59d81341edf35014c8be2383062512cf6694cf6 Author: Frederik Heber Date: Thu Feb 25 16:05:05 2010 +0100 MEMLEAK: created ActionSequence was not deleted at the end of some tests. commit c296c2bf71b3778d7fcc1a7d31edff3c7ecb08e7 Author: Frederik Heber Date: Thu Feb 25 15:32:35 2010 +0100 MEMLEAK: Observable::signOff() erases its own iterator, some more documentation added - Observable::signOff() erases a given Observer from the Observer list, but it had no backup iterator to go on afterwards. commit cbf01e67188dd162136b08f9f75f53c90cde64b9 Merge: 326a43b 5a72431 Author: Tillmann Crueger Date: Thu Feb 25 15:23:33 2010 +0100 Merge branch 'MenuRefactoring' into QT4Refactoring Conflicts: molecuilder/src/Actions/Process.cpp molecuilder/src/Actions/Process.hpp molecuilder/src/Actions/small_actions.hpp molecuilder/src/Makefile.am molecuilder/src/UIElements/TextDialog.cpp molecuilder/src/World.cpp molecuilder/src/unittests/Makefile.am commit 9b6b2f5c5519a056450ae40ab8f2ff0d0476d809 Author: Frederik Heber Date: Thu Feb 25 15:17:15 2010 +0100 Tests now work with Eclipse ECUT's TestRunner. - new switch in configure.ac: --enable-ecut - all tests are compiled as single test as before - and a new TestRunner test suite that combines all test into a single executable which can be run as CppUnit program in Eclipse (and then gives JUnit like output). commit 5a72431ddcfef19d649bae76105e9be7c354b7aa Author: Tillmann Crueger Date: Thu Feb 25 14:01:36 2010 +0100 Added a method to query Elements using the Dialog structure commit 957c4236611c50354d1be29ba7a8f0bd3c17e8e7 Merge: 0188ea2 244d265 Author: Tillmann Crueger Date: Thu Feb 25 12:15:22 2010 +0100 Merge branch 'StructureRefactoring' into MenuRefactoring commit 244d26586ddc827088fbe4ebefb4ab1e79777861 Author: Tillmann Crueger Date: Thu Feb 25 12:02:53 2010 +0100 Removed unittest files from the documentation commit d2dbac02371bc4bee8282cbe021c353e01009dd0 Author: Tillmann Crueger Date: Thu Feb 25 11:50:54 2010 +0100 moved Iterators for the World to a seperate file commit 0e2a479de952e453e6f956e78d72739043a4c7a5 Author: Tillmann Crueger Date: Thu Feb 25 11:32:14 2010 +0100 Added overloaded methods for all methods in the world taking an AtomDescriptor commit f16a4be57592953464b3be117545615b04328223 Author: Tillmann Crueger Date: Thu Feb 25 11:18:50 2010 +0100 Added Descriptor that allows querying of atoms by their type commit 02ee152fb4a2671e1975d6205dec5168dd7e7ee7 Author: Tillmann Crueger Date: Wed Feb 24 17:44:58 2010 +0100 Improved documentation of the World-class commit 46d9587b2240f976c33474cc5e1ab83d919036b3 Author: Tillmann Crueger Date: Wed Feb 24 16:29:12 2010 +0100 Made the world solely responsible for creating and destroying atoms. commit 68510095656406d3fa340540ead2947109c3d4c2 Author: Frederik Heber Date: Wed Feb 24 14:17:55 2010 +0100 BUGFIX: Tesselation test failed for all molecules on very first run in clean build directory. - Fail was caused by rmdir instead of rm -rf, only the latter can delete directories with contents. commit 775d1332dac2d98e150640bab72e75a8a55d0a66 Author: Frederik Heber Date: Sun Feb 21 14:34:41 2010 +0100 Filling has a MaxDistance, somes changes to the Correlation Analysis. Correlation: - OutputCorrelation() have setprecision(8), as irregularities appeared in the output files with regard to the number of digits. - ParseCommandLineOptions() for case 'C' now needs BinStart and BinEnd. However, may be set to 0,0 (search for yourself), or (0,-1) (start at 0, but search end for yourself). - BUGFIX: argument index of element parameter was wrong from the change [E/P/S]. Filling: - PrepareClustersinWater() has new parameter MaxDistance, which is similar to Boundary only for the maximum thickness of water layer. - ParseCommandLineOptions() has new option -FF, if MaxDistance is set to -1, it is ignored. commit b54ac804770af8e83f6b370746a4c0eba37f99f5 Author: Tillmann Crueger Date: Fri Feb 19 15:31:56 2010 +0100 Added templates that allow arbitrary calculations on atoms to be mapped to sets of Atoms commit afb47f9975466cee3a9f4f362aa7bf8f6944ffd4 Author: Tillmann Crueger Date: Fri Feb 19 12:49:54 2010 +0100 Added a mechanism that allows the world to track changes done by the manipulators commit 7c4e29a0f614d09ec830c9b5de3be33450d2e688 Author: Tillmann Crueger Date: Fri Feb 19 12:31:39 2010 +0100 Added a class that allows constructing Processes that have a result commit b2cfdbdfdd88b6e10f0f70324107b161c29c6fb8 Author: Tillmann Crueger Date: Thu Feb 18 17:46:07 2010 +0100 Added a method that allows manipulation of selected atoms commit 865a945a9d2eacb1afa6069866839972485957de Author: Tillmann Crueger Date: Thu Feb 18 14:21:35 2010 +0100 Added iterator structure that allows iterating over selected atoms in the World. commit 0188ea2bebbe43e54233f62612634be31cd08d9b Author: Tillmann Crueger Date: Thu Feb 18 12:38:02 2010 +0100 Added a progress indicator for the text menu commit 7dad108da502aed41b703eec7a4b7305cc930a90 Author: Tillmann Crueger Date: Wed Feb 17 18:07:35 2010 +0100 Added a special class of Actions that take some time. commit 326a43bd17e3087bcceb5c16ee5ed98deff54ee1 Author: Tillmann Crueger Date: Wed Feb 17 18:07:35 2010 +0100 Added a special class of Actions that take some time. Added a statusbar to the window that shows world status and progress of the current processes. commit b1d8092d9ec052987057bfe8c1db017ea5905816 Merge: 7ba3248 3548592 Author: Tillmann Crueger Date: Wed Feb 17 12:15:27 2010 +0100 Merge branch 'StructureRefactoring' into QT4Refactoring Conflicts: molecuilder/src/Makefile.am molecuilder/src/builder.cpp molecuilder/src/unittests/Makefile.am commit 3548592787dc5efb58b2018c79af1646956f3fc3 Author: Tillmann Crueger Date: Tue Feb 16 18:26:59 2010 +0100 Moved control of molecules and periode to World. commit 7a1ce5357081767198c4e7f7e867143f5d19dda0 Author: Tillmann Crueger Date: Tue Feb 16 17:24:07 2010 +0100 Rebuilt AtomDescriptors using PIMPL-Idiom and added unittest for descriptors commit d1c5e2c1e093b9756002d8db06bda62bdb2c9057 Author: Tillmann Crueger Date: Mon Feb 8 17:23:03 2010 +0100 Improved Descriptor mechanism to allow calculations using descriptors. commit 164a33ff15a1bf3ee4cf3384e5372f87f6e826e0 Author: Frederik Heber Date: Mon Feb 8 16:26:30 2010 +0100 changed case 'C' of ParseCommandLineOptions to allow selecting between the three different pair correlation analysis functions. - case 'C' now expects additional first parameter: A type which is E, S or P for element, surface or pair. Via a switch it selects either of the three functions. Signed-off-by: Frederik Heber commit fc1b2481dd4f072d50b8fb757f2617ea848df96d Author: Tillmann Crueger Date: Fri Feb 5 17:25:40 2010 +0100 Added descriptors that allow multiple kinds of access to atoms commit d346b6bac7946bcc3b5530055071dd5ee3239ab7 Author: Tillmann Crueger Date: Fri Feb 5 16:19:27 2010 +0100 Made all atoms register themselves with the world upon creation commit 4d9c01f8014759f2f19a4f8d375d102f00f3be13 Author: Tillmann Crueger Date: Fri Feb 5 15:53:21 2010 +0100 Fixed some problems with the usage of Boost::threads commit 4422186ce5812cc3d3934d314a917aef810dc888 Author: Tillmann Crueger Date: Fri Feb 5 14:01:57 2010 +0100 Added a directory to quarantine files that should be completely removed during transition. - Usage of Files in this directory is necessary while transition is in progress, but highly deprecated commit 50fc88c7a34d87fa03f0a01e626ca5bc3c374975 Author: Tillmann Crueger Date: Fri Feb 5 13:43:39 2010 +0100 Made the Observer RAII-Pattern more secure. commit 2ba827e737ea7333505df6e2640b2fab96158b1b Author: Tillmann Crueger Date: Wed Feb 3 17:42:06 2010 +0100 Changed all observed places to new observer structure commit 317df86b76e0cf3898e566e6ebbd6b9fafddff25 Author: Tillmann Crueger Date: Wed Feb 3 17:31:45 2010 +0100 Changed Observer to use RAII-style for locking changes. commit 5d1611d4d063c3463b8409c51f533df160c3fda8 Author: Tillmann Crueger Date: Wed Feb 3 17:02:14 2010 +0100 Started development of World Class commit 314ff69958d03f134cae90c376a3c32e39b3485a Author: Tillmann Crueger Date: Wed Feb 3 15:11:22 2010 +0100 Assigned best priority to cached values. commit 0c1d972b5cd5790e8579c86f2e76863867a9c955 Author: Tillmann Crueger Date: Wed Feb 3 15:07:23 2010 +0100 Added mechanism that allows for assign priorities to observers commit 9ad39100c520f261ac05516e4832db65f031d140 Author: Tillmann Crueger Date: Tue Feb 2 17:46:29 2010 +0100 Added possibility to disable caching mechanism at compile time commit f721c640ec1d531c6aabbc1c140b99499b4a3ebf Author: Tillmann Crueger Date: Tue Feb 2 17:22:22 2010 +0100 Made more methods of the molecule observable commit ac9b567dcfceb87f9ec160392d8deff13fa247d5 Author: Tillmann Crueger Date: Tue Feb 2 16:53:04 2010 +0100 Added simple way to retrieve formula of a molecule using caching commit e3c8b48df554e40282fa946732e1c422ed66a415 Author: Tillmann Crueger Date: Tue Feb 2 16:35:09 2010 +0100 Added data structure to allow caching of derived values commit 6b59ab3832bf8abed2607c36831a5ee7109fb5d7 Author: Tillmann Crueger Date: Tue Feb 2 13:38:01 2010 +0100 Added planned new class-layout commit 7ba32480c6ee485679ff404928821f626f604ed1 Merge: b8d1aeb a25aaef Author: Tillmann Crueger Date: Tue Feb 2 13:36:38 2010 +0100 Merge branch 'MenuRefactoring' into QT4Refactoring Conflicts: molecuilder/src/Actions/small_actions.cpp molecuilder/src/Makefile.am molecuilder/src/unittests/Makefile.am commit a25aaef9d5e29b313b0a893b49836d905405be2b Merge: 520c8b5 1f1b23c Author: Tillmann Crueger Date: Tue Feb 2 13:22:06 2010 +0100 Merge commit 'heber/Analysis_PairCorrelation' into MenuRefactoring commit 520c8b507bae79bf8378d88c7c0636da4565faa5 Author: Tillmann Crueger Date: Fri Jan 15 16:53:29 2010 +0100 Moved method to rename molecules to a seperate Action commit bfce50c9e2b9df88b6278b3ae642519e27baf14a Author: Tillmann Crueger Date: Fri Jan 15 16:53:29 2010 +0100 Moved method to rename molecules to a seperate Action commit d5f2169f6714e2ce2f8c4379d8e1059f7a6c430d Author: Tillmann Crueger Date: Thu Jan 21 15:01:16 2010 +0100 Added a view that displays all molecules using a QTableWidget commit 63c1f67df77cc8176b6c0383d0c9e95cea19ac9f Author: Tillmann Crueger Date: Tue Feb 2 12:52:04 2010 +0100 Added generic observer pattern framework. (cherry picked from commit 7bc7ce52eb7b4d606d90f49cbfa9da7a300c5d82) Conflicts: molecuilder/src/Makefile.am molecuilder/src/unittests/Makefile.am commit b8d1aeb22373c5d1fad99d7977d1fe361a9c5313 Merge: 9fe36bb 2ededc2 Author: Tillmann Crueger Date: Tue Feb 2 12:38:06 2010 +0100 Merge branch 'MenuRefactoring' into QT4Refactoring Conflicts: molecuilder/src/Makefile.am molecuilder/src/builder.cpp molecuilder/src/unittests/Makefile.am commit 1f1b23c1a3375bf711b272a532147453a51502c3 Author: Frederik Heber Date: Tue Feb 2 10:43:52 2010 +0100 Possibility to store all bonds to file added. So far we only could store the adjacency (i.e. atom along with all bond partners per line) to file. For plotting molecules with pgfplots (and maybe for other purposes too) we need to have single tupels of two per line. Hence, the following additions were implemented: - new functions: BondedParticle::OutputBonds(), molecule::StoreBondsToFile() - new ParseCommandLineOption: J stores adjacency, j stores bonds. commit 790807641151d4c499215c0701bd03f85f497e00 Author: Frederik Heber Date: Sat Jan 30 20:00:47 2010 +0100 Output....Correlation() don't prepend header line with '#', BinData() changed to just calculate BinEnd by itself. - BinData(): If BinEnd < BinStart, BinStart is taken over and just BinEnd calculate by GetMinMax(). - this is needed for many histograms to be added on top of one another, there we need to have the same bins in each. - in all Output..Correlation() functions the '#' was eliminiated as pgfplots does not like it. commit d6eb8049299b893a41599fd1c5f5c0c9c90f7bee Author: Frederik Heber Date: Sat Jan 30 19:04:05 2010 +0100 FIX: FillBoxWithMolecule() - seed of random number generator was not set to current time. - This caused always the same fillings for the same set of parameters. commit 481601f903142b98da8a0a66523211e207373da7 Author: Frederik Heber Date: Sat Jan 30 18:35:48 2010 +0100 Added output of surfacemap in ParseCommandLineOptions(), case 'C' again. commit 2ededc23ca840f65c2141748eec08536adbb27d6 Author: Tillmann Crueger Date: Thu Jan 28 14:02:49 2010 +0100 Added possibility to query doubles and vectors using dialogs. commit 9fe36bb58ae84b51bb9fe0b8a94b9434f7bf9e41 Author: Tillmann Crueger Date: Wed Jan 27 14:00:42 2010 +0100 Seperated QT and menu parts from the rest of the build process commit 04b6f9c4cd8d885f794fa20c327103eb776d9cb1 Merge: 1ca488f 244a84a Author: Tillmann Crueger Date: Wed Jan 27 15:36:09 2010 +0100 Merge commit 'heber/Analysis_PairCorrelation' into MenuRefactoring Conflicts: molecuilder/src/unittests/Makefile.am commit cef1d776bded0efe18d839a872aa9663f38401d0 Author: Tillmann Crueger Date: Tue Jan 26 17:25:25 2010 +0100 Added basic structure for a GL-Visualization of molecules. commit 244a84acead8d11574763c52af776b344fd46c40 Author: Frederik Heber Date: Tue Jan 26 13:52:31 2010 +0100 GetDistanceToSurface() separated, filling now with water instead of boron, DissectMoleculeIntoConnectedSubgraphs() now working on list of molecules instead of single one. - MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() so far was working on a single molecule (given by parameter) instead of the list already contained in the list of its class. - Tesselation::GetDistanceSquaredToSurface() is split up into function of same name, which calls finds the closest triangle and calls Tesselation::GetDistanceSquaredToTriangle() which contains the former code. - PeriodicCorrelationToSurface() was adapted to the above split. - in tesselation.cpp lots of list<> and set<>s were replaced by the already present and appropriate define's. - small verbosity changes in: MatrixContainer::ParseMatrix(), TesselPoint::TesselPoint(), TesselPoint::~TesselPoint(), PointCloud::PointCloud(), PointCloud::~PointCloud(), Tesselation::GuessStartingTriangle(), BondGraph::LoadBondLengthTable() (status of parsing gives appropriate message). Signed-off-by: Frederik Heber commit 1ca488f7e320046e400e980657d7c0d91e0356ae Merge: 8927aea 1cf5df4 Author: Tillmann Crueger Date: Tue Jan 26 13:45:41 2010 +0100 Merge commit 'heber/Analysis_PairCorrelation' into MenuRefactoring Conflicts: Makefile.am molecuilder/src/Makefile.am molecuilder/src/builder.cpp molecuilder/src/unittests/Makefile.am commit 315164b6c8e5a1302b98d6dd1aefc8ede4ec56b5 Merge: 498ea07 f34def7 Author: Frederik Heber Date: Tue Jan 26 13:41:04 2010 +0100 Merge branch 'FixVersioning3' into Analysis_PairCorrelation commit f34def7cdde1404608ef61377d53e30b1c5d0bdb Author: Frederik Heber Date: Tue Jan 26 13:32:00 2010 +0100 Fixed versioning. - FIX: version.h was falsely excluded in .gitignore - FIX: version.h in pcp/src, molecuilder/src and util/src was not added to repository. - note that version.c is created by the Makefile, hence is still present in .gitignore and rightly so. Signed-off-by: Frederik Heber commit 90082e20801741a0b3e7548834439421c48542ac Author: Tillmann Crueger Date: Thu Jan 21 16:19:05 2010 +0100 Enabled editing of molecule names commit 6adb960b2da881f6d14a84d5494d2b32a4790b0d Author: Tillmann Crueger Date: Thu Jan 21 15:45:25 2010 +0100 Added possibility for views to catch name changes of molecules commit 57ee0d5caa59d7fc4f63f27545616746ba78b243 Author: Tillmann Crueger Date: Thu Jan 21 15:01:16 2010 +0100 Added a view that displays all molecules using a QTableWidget commit f8879dd41341e9b0285c43f7d9eec41d28414400 Author: Tillmann Crueger Date: Thu Jan 21 12:11:05 2010 +0100 Added generic observer pattern framework. commit d3a5ead8be3ae6a9161abdae5f08e8d3a79f81c0 Author: Tillmann Crueger Date: Tue Jan 19 11:51:07 2010 +0100 Added dialogs for QT. So far QTDialogs can query the same types a TextDialog can query. commit a6f18095d659beb050ae15e28ec345f8bb72d26e Author: Tillmann Crueger Date: Fri Jan 15 16:53:29 2010 +0100 Moved method to rename molecules to a seperate Action commit fa27ed6e67dc2377992b473bb19c8211f6e48f82 Author: Tillmann Crueger Date: Fri Jan 15 15:59:35 2010 +0100 Added support to call MenuItems using QT4 commit 498ea07d7fcc0fdeb6f45c601642ecac6893a4a2 Author: Frederik Heber Date: Thu Jan 14 19:06:40 2010 +0100 BUGFIX: Tesselation::IsInnerPoint() returned wrong result. - We compared resulf of GetDistanceSquaredToSurface by > MYEPSILON instead of <. Signed-off-by: Frederik Heber commit 124e14bf4f760cd397f977301cf1ef36d16a1c9c Merge: e9c677d 76102e6 Author: Frederik Heber Date: Thu Jan 14 18:46:24 2010 +0100 Merge branch 'FixTemplatedMinMax' into FixFillingWithMolecule commit 76102e670e79f1e76c1a1a9ce5ea225e0bb59a1d Author: Frederik Heber Date: Thu Jan 14 18:45:22 2010 +0100 Rather use parameter passing by value instead of reference. - We cannot use Min/Max for temporaries such as return values. Signed-off-by: Frederik Heber commit e9c677d36c2ee0c059231c45bd7a649b0b8198de Author: Frederik Heber Date: Thu Jan 14 18:43:34 2010 +0100 Unit test for BoundaryTriangleSet member functions added. - for now tests for BoundaryTriangleSet::GetClosestPointInsideTriangle() is tested and working. Signed-off-by: Frederik Heber commit 9473f6f36450986817e318b8952505cf40c6b6a1 Author: Frederik Heber Date: Thu Jan 14 18:36:09 2010 +0100 FillBoxWithMolecule now allows boundary between filler molecules and the surface. - boundary.cpp: - FillBoxWithMolecule() has additional parameter boundary and calls Tesselation::GetDistanceSquaredToSurface() to obtain distance to surface. - FillBoxWithMolecule(*) verbosity states now inner point or within boundary. - builder.cpp: - ParseCommandLineOptions() in case 'F' takes seven arguments instead of six and calls FillBoxWithMolecule() correctly. - tesselation.cpp: - Make const what needs to be const: BoundaryPointSet, BoundaryLineSet, BoundaryTriangleSet - added constructor BoundaryLineSet::BoundaryLineSet() that accept two endpoints instead of an array of two - new function BoundaryTriangleSet::GetClosestPointInsideTriangle() calculates closest point in a given triangle to a reference point and returns squared distance. - new function Tesselation::GetDistanceSquaredToSurface() that calculates the squared distance whose sign indicates whether reference is inside (-) or outside (+) and uses BoundaryTriangleSet::GetClosestPointInsideTriangle() - function Tesselation::IsInnerPoint() renamed to Tesselation::GetDistanceSquaredToSurface(). - new function Tesselation::IsInnerPoint() just uses Tesselation::GetDistanceSquaredToSurface() commit 7b36fe340af5ac8dae85c5c94b0f1c47d61da462 Author: Frederik Heber Date: Thu Jan 14 18:32:47 2010 +0100 Changed verbosity for Vector::GetIntersectionWithPlane(). - when line is parallel to plane this is stated as good or bad, not as error. - Vector::GetIntersectionOfTwoLinesOnPlane() - unused variable pfactor removed commit 8f67e29bbd34e9ce94aee9268529374212618b74 Author: Tillmann Crueger Date: Thu Jan 14 17:21:02 2010 +0100 Started actual presentation of the GUI Window commit ea94a8adcea12b6f8cf88a9d54bb7644629c360e Author: Tillmann Crueger Date: Thu Jan 14 15:50:36 2010 +0100 Added a UIFactory for construction of QT4 UIElements commit 3027f8c08886536cc3c48b3e9a171ffbea833152 Author: Tillmann Crueger Date: Thu Jan 14 14:40:44 2010 +0100 Build basis for a QT4 User interface - Added compilation rules for QT4 UI commit 8927aea618e98da8efa6063fbc8051a49ba83154 Author: Tillmann Crueger Date: Wed Jan 13 12:14:43 2010 +0100 Made embeddMolecules menu-point use the new dialog framework commit 48b47a2e45bcd678b981a71430946c2d99682229 Author: Frederik Heber Date: Wed Jan 13 15:01:55 2010 +0100 FillWithMolecule() is now working correctly. - FillWithMolecule() was almost working except for some positions very much outside. The problem was that a single closest point was found and its first line seen as shortest, despite all other connected lines were equally short due the point always being the one with shortest distance. This kept triangles better aligned from being excluded as they not necessarily belong to the first line - This was fixed by introducing a LineSet ClosestLines in Tesselation::FindClosestTrianglesToVector(). - If a candidate has equal distance, he is added to the list. - If a candidate has smaller distance, the list is cleared beforehand. - As only the adjacent triangles of the found lines are returned, depending routines don't notice the change. Signed-off-by: Frederik Heber commit 9dbea5f1b6a8a9f9ba2cee284461dde66674804d Author: Frederik Heber Date: Wed Jan 13 15:01:30 2010 +0100 Templated Min and Max functions added. Signed-off-by: Frederik Heber commit 8468cbc62c0387957c05d1be63c5b0450f3601b3 Author: Frederik Heber Date: Wed Jan 13 15:00:14 2010 +0100 Boolean return value of Tesselation::IsInnerPoint in FillWithMolecule() was wrong way round. - position is outer point if IsInnerPoint returns false, then FillResult should be true (this was amended by filling when FillIt was false). Fixed. Signed-off-by: Frederik Heber commit fc9992d3a6ed99363516d12315df3de770c6335c Author: Frederik Heber Date: Wed Jan 13 14:30:01 2010 +0100 Small fixes to make checks working again. - Tesselations tests 13 and 14 were not working due to two triangles being flipped in .dat - Tesselations tests 13, 14 and 15 were not working due to positions changed in .r3d due to GetCenter() being replaced by new/zero vector. was fixed by copying created .r3d and .dat files on top of present ones in regression folder. Signed-off-by: Frederik Heber commit abc967a6094f7e796599b302620784209216bfbd Author: Tillmann Crueger Date: Wed Jan 13 12:14:43 2010 +0100 Made embeddMolecules menu-point use the new dialog framework commit 29a4ccd8507165b11cde7870fc327a78fbf2f4c6 Author: Tillmann Crueger Date: Wed Jan 13 12:05:17 2010 +0100 Used new Query Infrastructure for SimpleAdd menupoint commit 7aa00055d960e70638224d627feb8e64a28f9730 Author: Tillmann Crueger Date: Wed Jan 13 11:51:30 2010 +0100 Added infrastructure to query molecules from MoleculeList commit 45f5d6c9765964e165f92356c6f5d155ec541135 Author: Tillmann Crueger Date: Wed Jan 13 11:22:29 2010 +0100 Changed dialog structure to use objects for queries. commit aab2b1b96129d975cf20e4bb5913abf3b610eda7 Author: Tillmann Crueger Date: Mon Jan 11 11:40:20 2010 +0100 Removed some unessecary methods from oldMenu commit 2414857c3831ba1486a06bbb005a62df4f3e9c11 Author: Frederik Heber Date: Mon Jan 11 10:35:52 2010 +0100 Removed unnecessary epsilon parameter. - epsilon before was used as a threshold parameter but is not needed anymore. - removed as parameter in case 'F' in builder.cpp - removed from Tesselation::IsInnerPoint() - removed from FillBoxWithMolecul() in boundary.?pp commit fee69b843bd5d32a84f98c5e371186c1bb704c1c Author: Frederik Heber Date: Mon Jan 11 10:13:49 2010 +0100 Fixed Tesselation::IsInnerPoint() - Both unit tests TesselationInsideOutsideTest and VectorUnitTest are working (and also all others btw); - FIX: BoundaryTriangleSet::GetIntersectionInsideTriangle() - checks whether intersection is one endpoint and performs the GetIntersectionOfTwoLinesOnPlane() right away to check whether we are inside of triangle - FIX: Vector::GetIntersectionOfTwoLinesOnPlane() - parallelity is now checked correctly and in accordance with interface description fixed in VectorUnitTest. Signed-off-by: Frederik Heber commit fcad4b799965ab6d28e3051334372d1abd613525 Author: Frederik Heber Date: Mon Jan 11 04:06:30 2010 +0100 InsideOutside unit test of tesselation is working correctly. - FIX: BoundaryTriangleSet::GetIntersectionInsideTriangle() - don't need helper, just check whether CrossPoint is returned (and true) for all of the three sides. - FIX: Tesselation::IsInnerPoint() - projection onto plane and stuff was nonsense, just take the Point ans Intersection which is on the plane anyway. - FIX: Vector::GetIntersectionOfTwoLinesOnPlane() - coefficient MUST be zero (then vectors are coplanar), but parallelity check was missing. Also, we have to check whether s is in [0,1] in order to see whether we are inside the triangle side or outside. Signed-off-by: Frederik Heber commit 68a53bfd326c1b3c6ea381d5fcb0614ae779b0f4 Author: Frederik Heber Date: Mon Jan 11 04:04:59 2010 +0100 BUGFIX - Test was wrong in upper bounds of inside area. - upper bounds were checked as sum_i fabs(x_i) <= 1, which is wrong, for a box any of each coordinate may be 1. Signed-off-by: Frederik Heber commit 865272fcb494e2b53b4e6914346384ce617248de Author: Frederik Heber Date: Sun Jan 10 20:25:50 2010 +0100 Added Determinant() function to class GSLMatrix. - new function GSLMatrix::Determinant() which calculates the determinant for square matrices by LU decomposition. Signed-off-by: Frederik Heber commit 2793efb558f578fa40965e9c4d2048056459c45c Author: Frederik Heber Date: Sun Jan 10 20:24:58 2010 +0100 FIX - GSLVector::Set() return value was double instead of void. Signed-off-by: Frederik Heber commit 9d63085898763e9d41d3cc3415931f494fb5f371 Author: Frederik Heber Date: Sun Jan 10 20:24:02 2010 +0100 Vector::GetIntersectionOfTwoLinesOnPlane() rewritten. Use routine suggested by Eric Weisstein of Wolfram, which is basically what we did before the matrix attempt. Signed-off-by: Frederik Heber commit 31a6af013bfb4720b6f119e5968fc50a724596a6 Author: Frederik Heber Date: Sun Jan 10 20:15:01 2010 +0100 libgslwrapper.a added to LDADD of most tests. Since Vector class uses GSLMatrix in Vector::GetIntersectionOfTwoLinesOnPlane(), we need the lib where ever we have libmolecuilder.a. Signed-off-by: Frederik Heber commit a5a630eae70b84b4135d54b0aefc6fc22cf9242f Author: Frederik Heber Date: Sun Jan 10 20:12:40 2010 +0100 BUGFIX - GetCenterOfSphere(): condition were not put correctly in brackets. Signed-off-by: Frederik Heber commit ebe4d673a66c9047893c4fef730364c334110007 Author: Frederik Heber Date: Sun Jan 10 20:10:52 2010 +0100 BUGFIX - molecule::MinimiseConstrainedPotential() OldPotential was used outside of loop in output message. Signed-off-by: Frederik Heber commit 1f61b6e4d26290e24fee2f126f77158ad94e0652 Author: Frederik Heber Date: Sun Jan 10 20:09:56 2010 +0100 Inclusion of config.h was missing. This caused a bug with GSL's inline function definition. Signed-off-by: Frederik Heber commit 3e50ff33f75d3d1d8f311edf3e5d93edeb8665dd Author: Frederik Heber Date: Sun Jan 10 20:07:52 2010 +0100 cstdlib header was missing, necessary for free, malloc and calloc This was noted on laptop with gcc 4.1 (on workstation we have gcc 4.2). Signed-off-by: Frederik Heber commit 49e1aee5c4a49420580816bf2f1d91e3e614c777 Author: Frederik Heber Date: Sun Jan 10 20:05:34 2010 +0100 cstring header was missing in files, supplying definition of strlen, strcpy, and so on. This was noted on laptop with gcc 4.1 (on workstation we have gcc 4.2) commit 3c5606481cdb4d2a55354f27895b7974cc9aca2b Author: Tillmann Crueger Date: Sat Jan 9 13:02:13 2010 +0100 Updated UML-Diagramm of all UI-Classes commit 12b845dde3632f5d259a4ef1fecdb23ebba302f4 Author: Tillmann Crueger Date: Sat Jan 9 12:30:49 2010 +0100 Seperated building of mainWindow and contained Menus - Moved code to build Menus to builder.cpp - Moved WindowGeneration code to constructor commit f6061053393b67472b604538fdfdae9f6563328c Author: Frederik Heber Date: Fri Jan 8 18:48:35 2010 +0100 Wrapper class for gsl_linalg along with working Unit test. - new class LinearSystemOfEquations wraps all useful functions of the GSL library part linalg. - uses wrapper classes GSLVector and GSLMatrix in order to solve Ax = b for x. - new unit tests LinearSystemOfEquationUnitTest tests each part and is working. Signed-off-by: Frederik Heber commit fc3b67ab727f7e08e2351fe21726f111d3fca2e5 Author: Frederik Heber Date: Fri Jan 8 18:46:51 2010 +0100 Wrapper class for gsl_matrix along with working Unit test. - new class GSLMatrix wraps all useful functions of the GSL library. - new unit tests GSLMatrixSymmetricUnitTest (symmetric case) and GSLMatrixUnitTest tests each part and is working. Signed-off-by: Frederik Heber commit 9fb86009e5c88cc9099c3a3d1040728ee1cd442e Author: Frederik Heber Date: Fri Jan 8 18:44:51 2010 +0100 Wrapper class for gsl_vector along with working Unit test. - new class GSLVector wraps all useful functions of the GSL library. - new unit test GSLVectorUnitTest tests each part and is working. Signed-off-by: Frederik Heber commit 97498a1c712a846028cfe0e2f484ccda52680f60 Author: Frederik Heber Date: Fri Jan 8 15:04:22 2010 +0100 Attempt to fix the tesselation::IsInnerPoint(). We try the IsInnerPoint() as follows: 1. Find nearest BoundaryPoints - working 2. Find Closest BoundaryLine's - working 3. Find closest Triangle that is well aligned (wrt to NormalVector and Distance) - unsure whether correctly working 4. Check whether alignment is on boundary or inside/outside - working 5. If on boundary, we check whether it's inside of triangle by intersecting with boundary lines - not working Hence, we code a wrapper for GSL routines, to - finally - allow for solution of linear system of equations. Signed-off-by: Frederik Heber commit cc04b7dcf53d227c2347afab510d4041e1140de4 Author: Tillmann Crueger Date: Thu Jan 7 15:46:34 2010 +0100 Added a central registry that allows access to actions by name. commit a562758de7d719868053e4339076c0d99b31a95f Author: Tillmann Crueger Date: Thu Jan 7 14:24:06 2010 +0100 Added support for creating a main window using the UIFactory. commit f5a86a6666d55ff72b438e88b30809b17e2be41c Author: Tillmann Crueger Date: Tue Jan 5 16:34:52 2010 +0100 Added Basis for creating globally accessible and compatible UIElements - Added Factories for UIElements that can be chosen at programm startup - Added Dialogs that can be used to query values commit 3e026a4655f309a32574278ca3f02844f3d9e25b Author: Tillmann Crueger Date: Tue Jan 5 14:48:05 2010 +0100 Transitioned MergeMolecule Menu to new menu structure commit 820a42fdc1600dad77d30858ee59ea01d1f8db16 Author: Tillmann Crueger Date: Tue Jan 5 11:11:52 2010 +0100 Extracted all methods from MergeMolecules Menu - Added new action that only displays an errorMessage commit 235bede62ee6609f17d7778b150ccd667adf0025 Author: Tillmann Crueger Date: Tue Jan 5 10:23:25 2010 +0100 Moved saveConfig method from oldmenu to a method inside config class commit 6b932c7d7b3e3b190ec670a803b24bdffcbf9d38 Author: Tillmann Crueger Date: Sat Jan 2 16:53:39 2010 +0100 Removed unecessary method stubs from oldmenu class commit 477bb28e8a7c96953ef28630fb08028fa3bdb5a5 Author: Tillmann Crueger Date: Sat Jan 2 16:49:40 2010 +0100 Moved several Methods from Menu to MoleculeListClass commit 096214873dde5e791e08ce2990d335c95d4d57fb Author: Tillmann Crueger Date: Sat Jan 2 16:28:29 2010 +0100 Made EditMoleculesMenu a Submenu inside the MainMenu commit 7c6f7347a55d7eaa5d6e2a0da8b6a11252f4dff5 Author: Tillmann Crueger Date: Sat Jan 2 16:18:00 2010 +0100 Transitioned EditMoleculesMenu to new menu structure commit c15ca26c8aaeb433b6c80f98d5a7967ed4398a4e Author: Frederik Heber Date: Tue Dec 29 15:48:49 2009 +0100 Changes to FindClosest...ToVector() and use of ..Map,..Set,..List defines in tesselation.cpp. - Search and Replace for all occurences of defines ..Map,..Set,..List in tesselation.cpp to tighten code - New function Tesselation::FindClosestBoundaryPointsToVector() - replace Find(Second)ClosestPoint() - New functions Tesselation::FindClosestBoundaryLineToVector() and Tesselation::FindClosesttriangleToVector() - old functions FindClosestTriangleToPoint() and FindClosestTrianglesToPoint() start looking from BoundaryPoints only and thus might find a triangle being closer which we see from the wrong side - added unit test TesselationInOutsideUnitTest - checks IsInnerPoint and containments - adapated unit test TesselationUnitTest - checks tesselation only commit 1020f0efe8e5aac8bc8bb893cf28f27c08302350 Author: Tillmann Crueger Date: Tue Dec 29 13:56:55 2009 +0100 Extracted several methods from the EditMolecules Submenu. commit 8f113e699e9964e0a218b631615dad0985d8985b Author: Tillmann Crueger Date: Tue Dec 29 13:20:20 2009 +0100 Added possibility to add default Items to textMenus commit 77675ff1c3144d64d31a265fdcad4a77375bb44c Author: Tillmann Crueger Date: Tue Dec 29 12:57:09 2009 +0100 Moved flipChosen method from oldmenu to MoleculeListClass commit 0229f957a22cd87075323d1b589049d0957c4480 Author: Tillmann Crueger Date: Tue Dec 29 12:47:57 2009 +0100 Added more tests for Actionsequence - Test if every included object is called and every removed object is left alone - Test if every included object is undone and every removed object is left alone commit 71b20e8e52bf69205f641774cf6e270e8ac8e84c Author: Frederik Heber Date: Sat Dec 19 20:32:24 2009 +0100 Attempt to fix the embedding. Basically it would be working, but there was some failures with the FindClosestTriangleToPoint() routines. We get triangles wrong if we start looking for the closest point. Actually, we should really look at each triangle and check the distance. Now, we look at least at each line, but code is unfinished and crashes at the end unexplainedly. commit 3930ebe12872ce3db8024569a561d704959d5599 Author: Frederik Heber Date: Sat Dec 19 20:29:02 2009 +0100 Smaller fixes. - analysis_correlation.cpp: Info objects created at start of each function for debugging. - ParseCommandLineOptions(): case 'I' dissection added, some stuff was unexplained - molecule::CenterOrigin() - starting at start not next now, which left out first! Signed-off-by: Frederik Heber commit 1cf5df4989b7f5e585059b55a6fab75b737ccdab Merge: ebbd3d3 73b5107 Author: Frederik Heber Date: Thu Dec 17 18:52:45 2009 +0100 Merge branch 'CorrectDegeneratedPolygons' into Analysis_PairCorrelation commit 73b510703a98881d7b9af8c6bf8062bb87535068 Merge: 2130dd7 125b3c0 Author: Frederik Heber Date: Thu Dec 17 18:50:04 2009 +0100 Merge branch 'FixDegeneratedTesselation' into CorrectDegeneratedPolygons commit 125b3c03d0820c4f3bacd2d869f20d763758e94b Author: Frederik Heber Date: Thu Dec 17 18:45:35 2009 +0100 Non-convex tesselation seems to be working. Seems like it has been working already. Only, we had some stupid test code still present after fixing the CorrectAllDegeneratedPolygons(). - Tesselation::FindThirdPointForTesselation() - IsDegenerated and length of two new baselines check removed. - CandidateForTesselation::IsDegenerated removed commit 1473396142bb336f3624ec2b15023c20cfe170ea Author: Tillmann Crueger Date: Thu Dec 17 17:56:06 2009 +0100 Added unittest for ActionSequence. commit 8166250ffff8b35d39b69b5f4f1dbd9d2d9f4aec Author: Tillmann Crueger Date: Thu Dec 17 15:50:06 2009 +0100 Update of class diagram for menu classes. commit 898ae8256d30dfe56a15c98ba7a422143ba59106 Author: Tillmann Crueger Date: Thu Dec 17 15:40:16 2009 +0100 Removed legacy code from old menu structure. commit 1fa107dbc34a3e62d63a552642956a2a6ec3c408 Author: Tillmann Crueger Date: Thu Dec 17 15:38:29 2009 +0100 Added an action that allows grouping and grouped execution of several actions. commit a5041ec8d039f68329ca096fda2b8fc1c40b82ab Author: Tillmann Crueger Date: Thu Dec 17 15:21:47 2009 +0100 Added mechanism that allow to store and later execute sequences of Actions. commit 68c50bb90b06925d449ff1dee5853e7b1d6c163f Author: Tillmann Crueger Date: Thu Dec 17 14:49:27 2009 +0100 Minimal Changes to the UML-Diagram of menu classes. commit 0b2dd2f548baf71d7598b065038512ed8918160d Merge: 009e37b 4823731 Author: Frederik Heber Date: Wed Dec 16 17:18:46 2009 +0100 Merge branch 'FixTestSuite' into FixDegeneratedTesselation commit 009e37bb55a937cba6af84c753c094770358c5ce Merge: b998c31 c135eb7 Author: Frederik Heber Date: Wed Dec 16 17:18:41 2009 +0100 Merge branch 'FixVersioning2' into FixDegeneratedTesselation commit 48237319191afa5690b806b7801e3760839fc5b9 Author: Frederik Heber Date: Wed Dec 16 17:13:53 2009 +0100 Fixing the testsuite. - Putting performCriticalExit() everywhere blindly, is not actually such a good idea. Sometimes, we try opening files but it its not really bad when it fails. As there are fallbacks: - MoleculeListClass::AddHydrogenCorrection() - no problem if FITCONSTANT is missing - molecule::PickLocalBackEdges() - no problem if BackEdgeStack is empty, just means we have a Tree graph. - builder.cpp: Change text of case 'u' to contain 'invalid' arguments Signed-off-by: Frederik Heber commit c135eb752daf3d66628c6e7a603c697293464835 Author: Frederik Heber Date: Wed Dec 16 17:01:11 2009 +0100 Removed --tags as we have signed the "initial_commit" tag. - git describe uses only signed tags if not told otherwise (--tags or --all) commit ef81b0af9e8751502b741eab9c958fa73de74522 Author: Tillmann Crueger Date: Wed Dec 16 15:40:09 2009 +0100 Improved documentation for menu framework. commit f82ac4e1c4f69165e3602ccdadad86a82b35fd21 Author: Tillmann Crueger Date: Wed Dec 16 14:58:12 2009 +0100 Added class diagram to document structure of menu framework commit a223a8bfb0296f129adb66c871ddacecfdf73ba2 Merge: 3a0b389 c967318 Author: Frederik Heber Date: Wed Dec 16 13:58:40 2009 +0100 Merge branch 'MenuRefactoring' into JansCluster_water commit c96731843638e56cd70638a14a5a58df98ddd337 Author: Tillmann Crueger Date: Wed Dec 16 13:21:27 2009 +0100 Finished transformation of main menu. Signed-off-by: Tillmann Crueger commit 165d7df7af26713c606213e7edaaf7e92f455f2f Author: Tillmann Crueger Date: Wed Dec 16 11:08:33 2009 +0100 Rebuilt SubMenuItem to use inclusion (Strategy pattern) instead of inheritance. Signed-off-by: Tillmann Crueger commit c68025a54bebebfc7ccb12a5a0445bfc41564298 Author: Tillmann Crueger Date: Wed Dec 16 10:58:21 2009 +0100 Added method to flip ActiveFlag for single molecules. Signed-off-by: Tillmann Crueger commit 835a0f230cbc85f91f577d9811e77616461f6d45 Author: Tillmann Crueger Date: Wed Dec 16 10:49:55 2009 +0100 Added Title to DisplayMenuItems. Signed-off-by: Tillmann Crueger commit a306a2d77ee62ec2bc854a16527e4bc18fd298b1 Author: Tillmann Crueger Date: Mon Dec 14 15:27:08 2009 +0100 Small fix to delete the complete menu. Signed-off-by: Tillmann Crueger commit 9d86096ac44b59937a46337abb7d8f7365b081fb Author: Tillmann Crueger Date: Mon Dec 14 15:24:49 2009 +0100 Added basic View functionality. - Added DisplayMenuItem to show certain types of Views - Added Views to make StringViews from methods producing strings and from methods taking streams Signed-off-by: Tillmann Crueger commit 5b9bba364d0b3255eb2379d37a962641805d378b Author: Tillmann Crueger Date: Mon Dec 14 11:31:58 2009 +0100 Changed formating of menus and added protection to keep MenuItems from being added twice. Signed-off-by: Tillmann Crueger commit f767d4750ddd955bee133b42bfa6663168440d6f Author: Tillmann Crueger Date: Mon Dec 14 10:56:51 2009 +0100 Fixed memory leak in TextMenu Signed-off-by: Tillmann Crueger commit 21c2461c78c147130738812a65af19b9c6c18851 Author: Tillmann Crueger Date: Mon Dec 14 10:51:33 2009 +0100 Rebuild the main menu using the new structure as far as possible. Signed-off-by: Tillmann Crueger commit 65b6e082cfd9dc7a3425e801a334748f57e321ab Author: Tillmann Crueger Date: Tue Dec 15 18:12:30 2009 +0100 Added basic menu and action framework - Added action base class - Added class to make actions from methods - Added Menu base class - Added TextMenu class to produce text menus - Added MenuItem base class for menu items - Added ActionMenuItem for menu items using an action - Added SubMenuItem class for menu items presenting a submenu - Added SeperatorItem class for menu seperators without functioninality Signed-off-by: Tillmann Crueger commit 4aa42416b20dd9ccb3541499b817033693b501f0 Author: Tillmann Crueger Date: Tue Dec 15 18:11:54 2009 +0100 Added capability to build doc from anywhere in the tree. Signed-off-by: Tillmann Crueger commit b285242afc57209c3a338364d12c5c5ac7bc98a2 Author: Tillmann Crueger Date: Mon Dec 7 15:40:02 2009 +0100 Added class diagramm to documentation directory Signed-off-by: Tillmann Crueger commit 992a542f55b5ea8824a4644ee68872fac13f0298 Author: Tillmann Crueger Date: Mon Dec 7 15:38:34 2009 +0100 Minor changes to menu::SaveConfig() Signed-off-by: Tillmann Crueger commit 85bc8ed4237242b37b2c65bd7f08530fce9700cf Author: Tillmann Crueger Date: Wed Dec 2 17:26:24 2009 +0100 Started refactoring of the menu. - Created new menu class - moved all menu functions inside menu class Signed-off-by: Tillmann Crueger commit b998c31f6ac5d93741e8063ef0755447d2b8171b Author: Frederik Heber Date: Wed Dec 16 12:53:06 2009 +0100 Fix attempts of the Tesselation. One problem still remains: - degenerated triangles are created more than two times. The following has been changed: - BondGraph::~BondGraph() - docu changes - FindNonConvexBorder() - added CheckListOfBaseLines() and StoreTrianglesInFile() before CorrectDegeneratePolygons() (allows checking of closed tesselation even when correction fails) - boundary.hpp: SingleStepWidth set to 10 - Tesselation::AddTesselationLine() - FindLine set before if and hence we may use it twice and find() only once - Tesselation::FindStartingTriangle() - renaming of variables such that they are equal to FindNextSuitableTriangle() - Tesselation::FindNextSuitableTriangle() - using SphereCenter (is the result of GetCenterofCircumcenter()) - Tesselation::FindThirdPointForTesselation() - some rewrites to make the code clearer - CandidateForTesselation::IsDegenerated - designates candidate TesselPoint of a degenerated triangle - BoundaryTriangleSet::SphereCenter - contains the SphereCenter created during Tesselation of the triangle - FIX: Tesselation::CorrectAllDegeneratedPolygons() - only adds triangles to candidate list that are _not_ simply degenerated (this prevents two(four) singly degenerated but separate triangles to be put into the same polygon, resulting in an uneven number of triangles). - new function Vector::IsEqualTo() - checks whether vector is equal to another (within MYEPSILON bounds) commit 5e8f821736499ecf8a4d8e4b1abc3e04d27a8dd1 Author: Frederik Heber Date: Wed Dec 16 12:51:17 2009 +0100 FIX: MatrixContainer::ParseMatrix() should not call performCriticalExit(), when file opening fails. - this caused failed BondLengthTable loading to exit the program, instead of falling back to vdW-Radii commit cd7b0f6cb8805d0b23e5d123d8cc775108bccb8a Author: Frederik Heber Date: Wed Dec 16 12:49:40 2009 +0100 BUGFIX: delete(mol) belongs to the commented-out DissectMoleculeIntoConnectedSubgraphs(). - caused the parsed molecule to be deleted (hence, start->next = NULL and end->previous = NULL, as they were unlinked). commit a8eb4a11ebc32f3fb2ff166e058165534e1fe39a Author: Frederik Heber Date: Wed Dec 16 12:47:47 2009 +0100 Added versioning to each executable. - credits to Ralf Wildenhues for writing the Makefile.am code - version.c section added to Makefile.am (pcp, molecuilder and util) - src/version.h to each pcp, molecuilder and util - each of the executables includes version.h and prints version in main() Signed-off-by: Frederik Heber commit fad93cd290889e66970858cf89cbc54519c70742 Author: Frederik Heber Date: Sat Nov 28 18:52:05 2009 +0100 The finding of the degenerated polygons' endpoints was not yet correct, fixed. - PROBLEM: we always looked for quadragons as atomic units of degenerated polygons, however for aromatic rings there may actually be no quadrons sub parts but only a a hexagon to be found. - Tesselation::CorrectAllDegeneratedPolygons(): rename ListofFourse -> ListofDegeneratedPolygons - FIX: Tesselation::CorrectAllDegeneratedPolygons(): Number of simply degenerated polygons was returned instead of number of degenerated polygons - Rewritten Tesselation::CorrectAllDegeneratedPolygons() in the following manner (which is also a lot faster than before): 1. Go through all BoundaryPoints 2. Check whether they have two triangles with anti-parallel NormalVectors, indicating that this point is part of a degenerated polygon. 3. Combine endpoint candidates based on whether there is a BoundaryLineSet in between, then put them into the same polygon. 4. Proceed with 3. until all candidates have been put into BoundaryPolygonSets 5. continue with the unchanged remainder on this new "ListofFours" (our list of degenerated polygons). commit 2130dd7dbcd217fe4e291c7c4f3600e414c6b017 Merge: af374d7 8560986 Author: Frederik Heber Date: Sat Nov 28 16:48:41 2009 +0100 Merge branch 'FixDegeneratedTesselation' into CorrectDegeneratedPolygons Conflicts: molecuilder/src/tesselation.cpp merge only necessary due to stupid git commit --amend Signed-off-by: Frederik Heber commit 8560986364b882d262e113ac9b52ce6d6b7f4261 Author: Frederik Heber Date: Sat Nov 28 15:58:40 2009 +0100 Correction of degenerated polygons is working. - Correction of degenerated polygons: - incorporated into FindNonConvexBorder() - verbosity added: BoundaryPolygonSet::GetCenter(), BoundaryPolygonSet::ContainsBoundaryLine(), BoundaryPolygonSet::ContainsBoundaryPoint(), BoundaryPolygonSet::ContainsPresentTupel(), Tesselation::AddTesselationLine(), Tesselation::CorrectAllDegeneratedPolygons(), ArePolygonsEdgeConnected() - renamed function BoundaryPolygonSet::GetAllTrianglesFromEndpoints() to GetAllContainedTrianglesFromEndpoints() (as it only returns triangles whose endpoints are _all_ in the BoundaryPolygonset) - BoundaryPolygonSet::FillPolygonFromTrianglesOfLine() does not strictly return four or NULL endpoints, as it makes subsequent success checks (and verbose output of failure) harder. - FIX: Tesselation::RemoveTesselationTriangle() adds line to Tesselation::OpenLines of still attached to other triangle. - new struct BoundaryLineSetCompare(), that compares BoundaryLineSet's - new struct BoundaryPolygonSetCompare(), that compares BoundaryPolygonSet's - FIX: lots of small fixes to Tesselation::CorrectAllDegeneratedPolygons(): new backside triangles were not added to LinesOnBoundary, when joining adjacent polygons triangles were gathered from Four instead of current PolygonRunner, other combination was not added to SimplyDegeneratedTriangles, we did not check whether polygon to test was really planar (thx UnitTest) - FIX: CountTrianglePairContainingPolygon() - PairTrianglesnodes instead of TriangleNodes was clear()'ed. - BUGFIX: FindAllDegeneratedLines() did not find the correct lines due to wrong comparison. Now we use a set with the comparator BoundaryLineSetCompare(). - valgrind runs through fine. Signed-off-by: Frederik Heber commit af374d7a640d594e59252eb9cc95f6e933cddf9e Author: Frederik Heber Date: Sat Nov 28 15:58:40 2009 +0100 Correction of degenerated polygons is working. - Correction of degenerated polygons: - incorporated into FindNonConvexBorder() - verbosity added: BoundaryPolygonSet::GetCenter(), BoundaryPolygonSet::ContainsBoundaryLine(), BoundaryPolygonSet::ContainsBoundaryPoint(), BoundaryPolygonSet::ContainsPresentTupel(), Tesselation::AddTesselationLine(), Tesselation::CorrectAllDegeneratedPolygons(), ArePolygonsEdgeConnected() - renamed function BoundaryPolygonSet::GetAllTrianglesFromEndpoints() to GetAllContainedTrianglesFromEndpoints() (as it only returns triangles whose endpoints are _all_ in the BoundaryPolygonset) - BoundaryPolygonSet::FillPolygonFromTrianglesOfLine() does not strictly return four or NULL endpoints, as it makes subsequent success checks (and verbose output of failure) harder. - FIX: Tesselation::RemoveTesselationTriangle() adds line to Tesselation::OpenLines of still attached to other triangle. - new struct BoundaryLineSetCompare(), that compares BoundaryLineSet's - new struct BoundaryPolygonSetCompare(), that compares BoundaryPolygonSet's - FIX: lots of small fixes to Tesselation::CorrectAllDegeneratedPolygons(): new backside triangles were not added to LinesOnBoundary, when joining adjacent polygons triangles were gathered from Four instead of current PolygonRunner, other combination was not added to SimplyDegeneratedTriangles - FIX: CountTrianglePairContainingPolygon() - PairTrianglesnodes instead of TriangleNodes was clear()'ed. - BUGFIX: FindAllDegeneratedLines() did not find the correct lines due to wrong comparison. Now we use a set with the comparator BoundaryLineSetCompare(). - valgrind runs through fine. Signed-off-by: Frederik Heber commit 262baeec28914d9a539fe907ea0b7636dcb96672 Author: Frederik Heber Date: Fri Nov 27 15:39:06 2009 +0100 First compiling version of CorrectDegeneratedPolygons. - several new functions in tesselationhelpers.cpp: CountTrianglePairContainingPolygon(), ArePolygonsEdgeConnected(), CombinePolygons() - new class BoundaryPolygonSet with some member functions - several new functions in tesselation.cpp: Tesselation::CorrectAllDegeneratedPolygons() commit 523917322b3850ebb35a13d59abc58a39a18dd09 Author: Frederik Heber Date: Fri Nov 27 15:38:33 2009 +0100 Rename of internal variable due to upcoming name-conflict with "LineList" in ConfigFileBuffer::MapIonTypesInBuffer(). commit 5ae39c416dba574777f0f8f68e7e7f9cacd96a25 Merge: 4fc93fb 3a0b389 Author: Frederik Heber Date: Thu Nov 26 12:46:58 2009 +0100 Merge branch 'Forgotten_Tesselations_defs_in' into FixDegeneratedTesselation Conflicts: molecuilder/tests/Tesselations/defs.in HEAD was newer (no diffing of NonConvexEnvelope.dat anymore) Signed-off-by: Frederik Heber commit ebbd3d3e47035ead60a750b80c7f05742071fd11 Merge: 7911387 3a0b389 Author: Frederik Heber Date: Thu Nov 26 12:45:45 2009 +0100 Merge branch 'Forgotten_Tesselations_defs_in' into Analysis_PairCorrelation commit 3a0b3890298aafb5853dc67311a7ba037e2e94b4 Author: Frederik Heber Date: Thu Nov 26 12:45:04 2009 +0100 Forgot to add molecuilder/tests/Tesselations/defs.in commit 4fc93fba5ac57faee4b34d2ffb62215870fa7584 Author: Frederik Heber Date: Thu Nov 26 12:40:01 2009 +0100 removing automatic dissection on loading, Tesselations test now checks for return value only not for precise order of the triangles. - FindNonConvexBorder() returns bool depending on the result of CheckListOfBaselines() - BUG: ParseCommandLineOptions(): case 'p' (parsing) does not dissect the molecule, as we have to wait for e.g. '-A' before we may use the bond structure. Same for config::Load() commit 27bd2fa17ae15320dfbd551fafc36ea35660b5b9 Author: Frederik Heber Date: Thu Nov 26 12:36:44 2009 +0100 BUGFIX: testcase heptan was not correctly tesselated, as edges of a (degenerated) polygon were not correctly created. - rename GetCircleofConnectedPoints() -> GetCircleOfSetOfPoints() - GetCircleOfSetOfPoints() does not call GetAllConnectedPoints() but receives such a list as a parameter, allowing wider user - Tesselation::FindClosestTrianglesToPoint() now calls GetAllConnectedPoints() before GetCircleOfSetOfPoints() - Tesselation::AddCandidateTriangle():we use GetCircleOfSetOfPoints() in order to sort the nodes into a circle around a given reference (one of the baseline's nodes) - Tesselation::AddCandidateTriangle(): using this circle we may easily add the edges and triangles in a correct manner. commit 7273fcd1e27e7a9eff3252574c0b87a515886042 Author: Frederik Heber Date: Wed Nov 25 16:52:27 2009 +0100 Tesselation::FindStartingTriangle() now also uses AddCandidateTriangle() - this is necessary, as we might find more than one candidate for the third point when looking for the candidate commit f67b6e18b0b9f6a29d0dcad5ca54afbf56ac58e2 Author: Frederik Heber Date: Wed Nov 25 16:29:18 2009 +0100 Multi-Candidate-Add included and incorporated class Info into boundary.cpp, tesselation.cpp and tesselationhelpers.cpp - class Info incorporation: - (almost) all functions of boundary.cpp, tesselation.cpp and tesselationhelpers.cpp now begins with class Info FunctionName(__func__); - Multi-Candidate-Add: - CandidateForTesselation now contains a pointlist instead of a single point - Tesselation::AddCandidateTriangle() adds an polygon (for multiple candidates) instead of a single triangle. - HasOtherBaselineBetterCandidate() was commented out (it is to be checked whether we really need this) - Tesselation::FindNextSuitableTriangle() is reduced to pre-calculation of centers and calling Tesselation::FindThirdPointForTesselation() - Tesselation::FindThirdPointForTesselation() now fills the CandidateForTesselation::pointlist - Tesselation::FindStartingTriangle() now creates a CandidateForTesselation inside the NDIM-loop and Tesselation::FindThirdPointForTesselation() fills it. commit 8725ed38a099a2b4b3d95307d79ba0bdb7474c3f Author: Frederik Heber Date: Wed Nov 25 13:24:03 2009 +0100 New Info class that contains a global verbosity level, increased per function call and decreased per exit. - the idea is to have the "begin of .." and "end of .." messages in an object that automatically holds the current recursion level and hence may change verbosity accordingly for Logger - verbose::DoOutput() checks relative to Info::verbosity now. - InfoUnitTest was done and works well. Signed-off-by: Frederik Heber commit 1e168baa79ecbcebe88b8d261ed41d6928a43ce9 Author: Frederik Heber Date: Wed Nov 25 13:18:18 2009 +0100 Now the best (in terms of ShortestAngle) baseline is picked among all open ones instead of the next. - trying to fix the tesselation, we have the following changes - in Tesselation::FindNextSuitableTriangle(), the adding of the triangle was split off and shifted to new function Tesselation::AddCandidateTriangle() - Tesselation::FindNextSuitableTriangle() now takes CandidateForTesselation instead of a baseline and puts found candidate therein - instead of looping through LinesOnBoundary in FindNonConvexBorder() we have a new Map called OpenLines containing all Lines with TriangleCount < 2 - the loop itself was changed as follows and continues until OpenLines is empty: 1. Find Candidates for all new OpenLines 2. Pick smallest ShortestAngle among these 3. Add this candidate - OpenLines is added to in AddAlwaysTesselationLine() and removed from in AllTesselationLine() (existing line case) - CandidateForTesselation class has new attributes (Other)ShortestAngle - Element initialization was done for all constructors in tesselation.cpp commit 791138754ff7351a49e1250e959a2ba16ccf9e8b Author: Frederik Heber Date: Tue Nov 24 16:48:36 2009 +0100 BUGFIX atom::CorrectBonDegree() wrongly increased bond degrees. - NoBond was used instead of OtherNoBond which caused false incrementation of the bond degree beyond NoValenceOrbitals. commit 6a7f78c9ef6be7e9a26caa642d5bff5a83ae7493 Author: Frederik Heber Date: Tue Nov 24 16:34:49 2009 +0100 Fixes and naming of final Tecplot output file is now molecule name. - FIXES to builder.cpp: - case 'p' would not dissect the molecule into connected subgraphs - if done so, the BondGraph was not yet initialised - if done so, we need to check whether BondGraphFileName has been set - BondGraphFileName.empty() could not be used as a check, as was set to "" instead of "\n" - if (finally) done so, we have to remove the empty molecule that we parsed in - ... and then pick the newly added molecule for mol to point at - SaveConfig() did not set the merged molecule name correctly. - if empty config is given, the empty molecule now receives the ConfigFileName as name - FIXES to config.cpp - Load() did not set the name of the molecule - changes to tesselationhelper.cpp and tesselation.cpp - WriteTecplotFile() uses N == -1 to make clear, that we are writing the final not a temporary tecplot file and then uses the molecule's name instead of the last triangle's endpoints - FindNextSuitableTriangle(): HasOtherBaselineBetterCandidate() was commented out for the moment (as it is not yet final and makes all the test fail) - IncludeSphereinRaster3D() did not check whether LastTriangle was NULL or not - MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() names the subgraphs with suffixes "..-1", "..-2", ... - changes to PointCloud and molecule - new virtual function PointCloud::GetName() returns "unknown" - new function molecule::GetName() returns pointer to name of molecule - IsEmpty() and IsEnd() now return true by default - all .dat files in the "Tesselations" tests were changed accordingly (i.e. have now the name in the second line) - benzene was added as a new test for an absolutely flat molecule. So far, it fails horribly. - 13 of 17 tests run fine Signed-off-by: Frederik Heber commit c5f8363fcfbc3bdd15beb961f43e1bea9d0c3389 Author: Frederik Heber Date: Mon Nov 23 20:09:42 2009 +0100 bugfix to errorLogger and some error verbosity changes. - BUGFIX: errorLogger::operator << would first give the message, then the prefix and most of them to cout instead of cerr - GetCenterofCircumcircle() did break if sum of angles was > 180 which is unnecessary. - config::Load() - bond length table loading is now an error commit e359a800b68bfdc642700c86f8da41f2925d56a6 Author: Frederik Heber Date: Mon Nov 23 19:51:50 2009 +0100 Fixing ticket #18. - each eLog() << Verbose(0) is now followed by performCriticalExit(). commit 717e0c59ee3acdc14323b6851984ea268b5c6c7c Author: Frederik Heber Date: Mon Nov 23 19:22:33 2009 +0100 Verbosity corrected for ERROR and WARNING - present ERROR and WARNING prefixes removed and placed by eLog() and respective Verbosity(). - -v... is scanned for number of 'v's and verbosity is set accordingly - standard verbosity is now 0. Signed-off-by: Frederik Heber commit f1ef60a25947d39dbd0f9b8ba6bdc7726c8b8b4f Author: Frederik Heber Date: Tue Nov 10 21:59:00 2009 +0100 Attempt to fix tesselation for case 1_2-dimethylbenzene. - The issue is still the strongly degenerated end of the molecule, that is very flat. - new function: Tesselation::HasOtherBaselineBetterCandidate() - checks whether for the two other baselines of a proposed triangle there isn't an even better candidate - Tesselation::FindNextSuitableTriangle() uses the above function. - FindNonConvexBorder() - instead of jumping to end() if a new line was attempted, we jump to the beginning but only if new line was created succesfully. - DoSingleStepOutput reactived for this debugging. - Where the newly installed tesselations did only fail for this molecule, now they fail for all and some segfault. Only this runs through cleanly. Signed-off-by: Frederik Heber commit 9a0dc86befb40ba6fad6508c1b54291296609a92 Author: Frederik Heber Date: Tue Nov 10 21:58:31 2009 +0100 Only biggest molecule is tesselated for now in ParseCommandLineOptions() - case 'N' Signed-off-by: Frederik Heber commit 36eb4ebc0db2e162c7d409c1ec3619d38d3901ef Author: Frederik Heber Date: Tue Nov 10 21:56:39 2009 +0100 Added Tesselation testsets as TESTS to molecuilder. - defs.in with functions to run the tesselations. - For each test a .xyz and .dat file is given. Signed-off-by: Frederik Heber commit 89f768817d0f5b67a9e4ca00cddb1f941e585290 Author: Frederik Heber Date: Tue Nov 10 21:53:33 2009 +0100 BUGFIX: Output is again indented, errorLogger prefixes according to verbosity. - BUGFIX: as "(logger << verbose) = cout" was evaluated, this did not translate to (cout << verbose). Hence, the tabbing was lost. This is fixed. - errorLogger::operator << : 0 - CRITICL, 1 - ERROR, 2, ... - WARNING - in class Verbose the logger::operator functions are declared friend to allow access to Verbose::verbosity commit 9a71862bde9003acbdd76381bcea1012b54a0ed6 Author: Frederik Heber Date: Sat Nov 7 13:26:07 2009 +0100 BUGFIX: unnecessary include in header, file not closed in definition of setUp(). - in BondGraphTest::setUp() the file test containing the generated bond length table was not closed. - in bondgraphunittest.hpp bondgraph.hpp was included where a forward declaration sufficed. Signed-off-by: Frederik Heber commit 220cf3768e7703a728ec1af6f666c203da595d63 Author: Frederik Heber Date: Sat Nov 7 13:18:56 2009 +0100 Two new bond analysis functions. - GetMaxMinMeanBondCount() - evaluates min, mean and max bond count - MinMaxBondDistanceBetweenElements() - evaluates min, mean and max bond distance - Unit tests are in place and working fine. commit b9947daf71e80a4917240d81812895a5dd839d23 Author: Frederik Heber Date: Sat Nov 7 13:17:55 2009 +0100 New function bond::GetDistance...() - bond::GetDistance() and bond::GetDistanceSquared() return distance between bond::leftatom and bond::rightatom. commit 568be7d923a989339e03228df539b51b8a6df5b6 Author: Frederik Heber Date: Sat Nov 7 10:48:07 2009 +0100 Added config::SavePDB() and config::SaveMPQC(). - note: for CODICE we need to know about the different connected subgraphs created by the DFSAnalysis(). Hence, we write a pdb file which contains a resid number to discern in VMD between the molecules. Also, we need neighbour construction from a simple xyz file for TREMOLO in order to measure MSDs per water molecule. - new function in config.cpp: config::SavePDB() gets molecule or MoleculeListClass and writes PDB file - new function in config.cpp: config::SaveTREMOLO() gets molecule or MoleculeListClass and writes TREMOLO data file (with neighbours, mapped to global ids, and resid and resname) - new function in moleculelist.cpp: MoleculeListClass::CountAllAtoms() - counts all atoms. - BUGFIX: In MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() we did not shift the chained bond list from mol into the connected subgraphs. Thus, they were free'd on delete(mol) and no bonds were present afterwards. This is fixed, now we unlink() in mol and re-link() in the respective subgraph commit 96c9610522962b09c1cf8ce64546b44822f7b3e0 Author: Frederik Heber Date: Sat Nov 7 10:46:08 2009 +0100 Added initial analysis_bonds.cpp and unit test for Analysis of bonds. - analysis_bonds.cpp shall contain bond analysis tools, such as mean bond length, bond numbers, ... - unit test for it is in place, copied from bondgraphunittest.cpp, as we will need a bond graph anyway. - Makefile.am has nor ANALYSISSOURCE and ...HEADER definitions and above is added. - unittests/Makefile.am has unit test incorporated. - make check runs fine. commit 7f4bee2eae0dac8e2c4a2601deb21d190a89d1c6 Author: Frederik Heber Date: Sat Nov 7 10:44:11 2009 +0100 LEAKFIX: FillBoxWithMolecule() had mismatch delete/delete[] - boundary.cpp: FillBoxWithMolecule() - delete[] used on LCList and Tesselation instead of delete on every pointer in these arrays, fixed. - boundary.cpp: VolumeOfConvexEnvelope() - RESULT output has setprecision(6) again to have correct number of digits for testsuite case 14. - make check runs fine. commit 1614174df8095ae56a671e977842ee55d15b3415 Author: Frederik Heber Date: Thu Nov 5 19:14:08 2009 +0100 LEAKFIX: ReturnFullMatrixForSymmetric() and InverseMatrix() have Malloc()s, in code was delete(), not Free() - valgrind showed the "mismatch free/delete" and is fixed. (mostly concerned functions in molecule_geometry.cpp and analysis_correlation.cpp) - LEAKFIX: logger and errorLogger instances were not free'd, this is done. Signed-off-by: Frederik Heber commit e138deb122b004848fade8680e29c2fb80aeb317 Author: Frederik Heber Date: Wed Nov 4 20:56:04 2009 +0100 Huge change from ofstream * (const) out --> Log(). - first shift was done via regular expressions - then via error messages from the code - note that class atom, class element and class molecule kept in parts their output stream, was they print to file. - make check runs fine - MISSING: Verbosity is not fixed for everything (i.e. if no endl; is present and next has Verbose(0) ...) Signed-off-by: Frederik Heber commit 7326b21cef2429a9070eeb36352bb77cf6b12c2c Merge: 7ea9e61 06c7a3b Author: Frederik Heber Date: Wed Nov 4 19:25:42 2009 +0100 Merge branch 'CodeRefactoring' of ssh://adamantium/home/metzler/workspace/espack into Analysis_PairCorrelation Conflicts: molecuilder/src/unittests/Makefile.am - molecuilder/src/Makefile.am: included log.cpp, logger.cpp and errorlogger.cpp un libmolecuilder - molecuilder/src/unittests/Makefile.am: included LogUnitTest in tests and removed CXXFLAGS and LDFLAGS from it commit 7ea9e616afe1db1bdce286f712abff18030a7ce5 Author: Frederik Heber Date: Wed Nov 4 19:11:09 2009 +0100 Periodic variants of AnalysisPair...() implemented. - BUGFIX: Vector::DistanceToPlane() - we did not check whether sign is 0. - NOTE: Due to changes in Vector::DistanceToPlane() with sign, Unit test AnalysisCorrelationToSurfaceUnitTest had to be changed: - we now have bin -0.5 filled with 1 (instead of 0.) and -0.288 instead of 0.288 - find() replaced by lower_bound - new functions: PeriodicPairCorrelation(), PeriodicCorrelationToPoint(), PeriodicCorrelationToSurface() - each has a ranges[NDIM] argument with specifies the neighbours to scan: [ -ranges[i], ranges[i] ] - the atom::node is periodically translated to each periodic cell and the distance calculated. - NOTE: make check was broken before due to implementation of Periodic variants as normal ones (yielding more points that expected in unit test). Signed-off-by: Frederik Heber commit 99593f58e7f5860567229fe8fe34f98add9bdd85 Author: Frederik Heber Date: Wed Nov 4 18:34:05 2009 +0100 Extension to the periodic boundary case for analysis_correlation.cpp - Distance() -> PeriodicDistance(): PairCorrelation(), CorrelationToPoint(), CorrelationToSurface() - CorrelationToSurface() - goes through periodic cells given by a ranges variable and puts into map as well. - const: ReturnFullMatrixforSymmetric() and InverseMatrix() now have const * const parameter - InverseMatrix() shifted from class Vector into helpers.cpp - adapted due to InverseMatrix(): molecule::CenterInBox(), molecule::BoundInBox(), molecule::TranslatePeriodically() - new function: RDET3(), RDET2() (former #define's) - FIX: molecule::CorrectBondDegree() would loop eternally, if bonds cannot be fully corrected. - FIX for NULL return: Tesselation::FindClosestTrianglesToPoint(), Tesselation::GetCircleOfConnectedPoints() - FIX: Vector::DistanceToPlane() - did not give correct sign before according to PlaneNormal orientation other stuff: - less output: BondedParticle::CorrectBondDegree(), molecule::CyclicStructureAnalysis() commit c9bce3e4e4e06fbd3b6aa0303bb22113e04c7c27 Author: Frederik Heber Date: Wed Nov 4 16:08:11 2009 +0100 config::Load() refactored: Dissection into connected subgraphs -> MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() - new function MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs() - called in config::Load() commit a5551b36831494b1f744d79223d87e97b7be6f5c Author: Frederik Heber Date: Wed Nov 4 15:54:31 2009 +0100 Closed ticket #48 (AnalysisCorrelation...() take MoleculeListClass instead of molecule). - ParseCommandLineOptions() - case C: ActiveFlag ist set for all but the boundary molecule (i.e. the biggest). - changed parameters of PairCorrelation(), CorrelationToPoint(), CorrelationToSurface() - adapted unit tests: AnalysisPairCorrelationUnitTest, AnalysisPairCorrelationUnitTest, AnalysisCorrelationToPointUnitTest - MISSING: AnalysisCorrelationToSurfaceUnitTest yet only deals with a single molecule instead of multiple ones ... commit eecd33b33ccae6f7857db923f518303f399dde1c Author: Frederik Heber Date: Wed Nov 4 15:51:02 2009 +0100 BUGFIX: Allocated one molecule too much in config::Load(). - Count() was called from Subgraph not from Subgraph->next commit f4e1f56eee74c127ededd6c9ba004ca15330c846 Author: Frederik Heber Date: Wed Nov 4 13:57:24 2009 +0100 Closing ticket #47, case 'C' uses biggest molecule as surface for pair correlation. commit 3c349bda4eeea77e1019e8b5b3d87543ae1f20fa Author: Frederik Heber Date: Tue Nov 3 17:34:31 2009 +0100 "not working parsed molecule into subgraph splitting"-BUG fixed, BugFinder branch can be closed. - config::Load() - atoms were not in the right order for MaxOrder-test (12). Hence, the BondFragmentAdjacency could not be parsed. Now, we just take the subgraphs as the association of each atom to a molecule, i.e. we make a list and then re-link each atom to its new connected subgraph molecule, which is returned as the MoleculeListClass. other fixes: - BondGraph::SetMaxDistanceToMaxOfCovalentRadii() - parses the molecule and set to max of covalent radii of elements found therein - BondGraph::ConstructBondGraph() - SetMaxDistanceToMaxOfCovalentRadii() called before CreateAdjacencyList() to have current max_distance - BUGFIX: molecule::CreateAdjacencyList() - BondCount was not set to zero after cleaning of list - FIX: CreateFatherLookupTable() - as we use Calloc(), initialization to NULL was unnecessary commit ae38fb1ebb7a0ba407983519fa0603e09a65d217 Author: Frederik Heber Date: Tue Nov 3 15:27:15 2009 +0100 Fixing not created adjacency list, partially fixing subgraph dissection in config::Load() - CreateAdjacencyList() was called with zero bonddistance. - this was due to max_distance not being initialised in the constructor to 0 and subsequently not set if Bond Length Table was not found. - new function SetMaxDistanceToMaxOfCovalentRadii() which sets the max_distance to twice the max of covalent radii of all elements. - config::Load() - atoms in copied molecule (by DepthFirstSearchAnalysis()) are made their own father (and originals are removed). commit 2aeefd42484e1e703a9a9d84d548ce716faed02b Author: Frederik Heber Date: Tue Nov 3 13:38:08 2009 +0100 Removed libmolecuilder linking from unit tests where only some few modules were needed. commit 7218f8e00e4f8e7b2a82385c86479318f7b29c7b Author: Frederik Heber Date: Tue Nov 3 09:41:45 2009 +0100 Several memory bugfixes (thx valgrind). - main() - shortened case switch after ParseCommandLineOptions() - molecule::FragmentMolecule() - indentation around BondFragments fixed. - LEAKFIX: main() - configuration was not destroyed in case switch. - LEAKFIX: ~config() - BondGraph BG was not destroyed. - LEAKFIX: ParseKeySetFile() - filename was not destroyed. - LEAKFIX: molecule::FragmentMolecule() - BackEdgeStack (returned from DepthFirstSearchAnalysis()) was not destroyed. - LEAKFIX: molecule::FragmentMolecule() - BondFragments was not destroyed. - LEAKFIX: MemoryUsageObserver::~MemoryUsageObserver() -- frees all remaining unbfree'd memory - BUGFIX: MoleculeListClass::OutputConfigForListOfFragments() - FragmentNumber was delete'd not Free'd - BUGFIX: ParseCommandLineOptions() - Free() of ListOfLocalAtoms had FragmentCounter instead of i - BUGFIX: ParseCommandLineOptions() had BackEdgeStack in case 'D' instead of LocalBackEdgeStack for the CycliCStructureAnalysis() - BUGFIX: StackClass::StackClass() did not initialize StackList to NULL (are pointers anyway). - MolecularLeafWalker::FillBondStructureFromReference() - no more performs its actions recursively (just complicates things unnecessarily). - ParseCommandLineOptions() and molecule::FragmentMolecule() adapted to MolecularLeafWalker::FillBondStructureFromReference() changes. - DepthFirstSearchAnalysis_Init() now does all of the initialisation of DepthFirstSearchAnalysis() and get molecule instead of AtomCount and BondCount Fixed Calloc: - MemoryAllocatorTest::MallocTest() and MemoryAllocatorTest::CallocTest() perform test on array of 10 with writing to it (revealed Calloc() bug) - LEAKFIX: MemoryAllocatorTest::tearDown() - instance was not free'd - BUGFIX: Calloc() - calloc() is called with num and sizeof, not num and initial_value! - FIX: Malloc() to Calloc(): CreateFatherLookupTable(), molecule::IsEqualToWithinThreshold(), molecule::ConstrainedPotential(), PrintPermutationMap(), FillDistanceList() (initialization not needed anymore due to Calloc(), molecule::MinimiseConstrainedPotential(), molecule::ParseOrderAtSiteFromFile(), StoreFragmentFromKeySet_Init() (initialization not needed anymore due to Calloc(), molecule::StoreFragmentFromKeySet(), molecule::PowerSetGenerator(), molecule::FragmentBOSSANOVA(), molecule::ScanForPeriodicCorrection(), molecule::CreateAdjacencyList(), InitializeBFSAccounting(), BreadthFirstSearchAdd_Init(), BuildInducedSubgraph_Init(), MoleculeListClass::AddHydrogenCorrection(), MoleculeLeafClass::FillListOfLocalAtoms(), MoleculeLeafClass::AssignKeySetsToFragment(), StackClass::StackClass() Signed-off-by: Frederik Heber commit fa649a93ddcddda5f2e4f18ee89b49c4d34d2fde Author: Frederik Heber Date: Mon Nov 2 13:50:57 2009 +0100 Small changes. - VolumeOfConvexEnvelope() - setprecision corrected - BUGFIX: PrepareClustersinWater() - IsAngstroem was set to NULL instead of true - config::Load(), ..LoadOld() - get MoleculeListClass instead of molecule - config::TestSyntax() - removed unncessary molecule parameter - ParseCommandLineOptions() - no mol is created anymore, this is done when parsing in config::Load(), mol is set to first active instead - config.cpp: Lots of ^M (dos EOL) removed - have const molecule * const ref now: MoleculeLeafClass::FillBondStructureFromReference(), molecule::PickLocalBackEdges(), DepthFirstSearchAnalysis_CheckForaNewComponent(), DepthFirstSearchAnalysis_ProbeAlongUnusedBond() - are const member functions now - necessary due to periodentafel being a const pointer: molecule::ResetAllBondsToUnused(), molecule::FindNextUnused(), molecule::SetNextComponentNumber(), molecule::CyclicStructureAnalysis(), CyclicStructureAnalysis_AssignRingSizetoNonCycleMembers(), molecule::OutputGraphInfoPerBond(), molecule::OutputGraphInfoPerAtom(), molecule::CyclicBondAnalysis(), molecule::CyclicStructureAnalysis(), molecule::GetColor(), molecule::CorrectBondDegree(), molecule::OutputBondsList() - in molecule NoNonHydrogen, NoNonBonds and NoCyclicBonds are mutable - molecule constructor rewritten with respect to ticket #4 (shorten constructors) commit 34e0013c3d36c570e3d7cccf0314b9998c524fbc Author: Frederik Heber Date: Fri Oct 30 17:09:29 2009 +0100 BondGraph is initialized within config::Load(), as it has to happen after parsing options and before loading molecule. And various fixes. - FIX: BondGraph::LoadBondLengthTable() - scans into TempContainer, which is later given over to BondLengthMatrix or NULL'd if parsing failed. - BondGraph::ConstructBondGraph() adapted to above, uses both bonds functions depending on present BondLengthMatrix. - FIX: BondGraph::GetBondLength() - checks whether BondLengthMatrix is NULL. - config::Load() and ..LoadOld() get additionally the BondLengthFilename and allocates and parses BondGraph. - builder.cpp ParseCommandLineOptions() has been adapted to above changes. - FIX: molecule::CreateAdjacencyList() checks whether bonddistance is > 1. (otherwise quite useless and yielding too many cells). commit b21a64f827e177ed45bda0d871259b15127ce530 Author: Frederik Heber Date: Fri Oct 30 16:33:51 2009 +0100 BondGraph is parsed if command line switch '-g' is given. - builder.cpp: case 'g' which gives a bond length table file which is parsed after the configuration and before other command line options. - BondGraph::BondLengthMatrixMinMaxDistance() falls back to CovalentMinMaxDistance() if no table parsed. - Bond Length Table was changed to have first row _and_ column each enlist all the elements and does not have a "#" in front anymore. - The unit test has been changed accordingly. Signed-off-by: Frederik Heber commit 06c7a3b2d6ce79572856fe678ea2a178eb974a6a Author: Saskia Metzler Date: Fri Oct 30 12:04:50 2009 +0100 Ticket 43 Create a logging class The verbosity level can now be handeled globally by setVerbosity(). commit b7072174869980a43146f17b651981474109f428 Author: Frederik Heber Date: Fri Oct 30 09:30:57 2009 +0100 New class BondGraph. - BondGraph parses a file containing bond lengths and basically has a member function which gives lower and upper bounds on when two atoms are bonded and when not. - BondGraph::LoadBondLengthTable() - basically uses MatrixContainer::ParseMatrix() - BondGraph::ConstructBondGraph() - uses molecule::CreateAdjacency() but with different bounds-function. - BondGraph::GetBondLength() - returns entry from parsed bond length matrix - BondGraph::CovalentMinMaxDistance() - bounds function using covalent radii of involved elements - BondGraph::BondLengthMatrixMinMaxDistance() - bounds function which uses the parsed bond length matrix - Unit test written for BondGraph. - molecule::CreateAdjacencyList() - rewritten, takes now a bounds BondGraph member function, if NULL is given, creates its own BondGraph and uses standard covalent bounds function (which does not need any scanning). - new function BondedParticle::IsBondedTo() which checks whether given BondedPasrticle is contained in ListOfBonds. - builder.cpp: calls to molecule::CreateAdjacencyList() adapted to new syntax. commit 46ea3b3e9b5812647dd0fc8c97ecfc39e5eb3f10 Author: Frederik Heber Date: Fri Oct 30 09:29:31 2009 +0100 Test code is moved to its own source subdirectory: test. - ActOnAll.hpp was just a template test for the molecule::ActOnAll...() member functions, as the code is still fine and a Unit test depends on it, we keep it, but in a special subdirectory. commit 8c5327ba6c54e6a030fbc1bbf26821fabee8183f Author: Frederik Heber Date: Fri Oct 30 09:29:07 2009 +0100 Added Unit test for StackClass. - was former StackClass::TestImplementation(). commit d96277bbbf83514bf1d07b427277386bb07ab602 Author: Frederik Heber Date: Thu Oct 29 11:09:05 2009 +0100 Refactored StackClass with respect to tickets #38, #4. - #38 make const what is const - #4 shorten constructors - StackClass::TestImplementation() has been shifted into a unit test stackclassunittest.[ch]pp Signed-off-by: Frederik Heber commit c0f6c621f619a71f4b09c404a8cdb96eed63efec Author: Frederik Heber Date: Tue Oct 27 18:41:12 2009 +0100 Refactored tesselationhelpers.cpp with respect to ticket #38 (make const what is const). Signed-off-by: Frederik Heber commit fb73b8313dc69e341d7e560e1f298f5da5c56b22 Author: Frederik Heber Date: Tue Oct 27 17:42:42 2009 +0100 class config, ConfigFileBuffer, periodentafel and Vector are refactored with respect to ticket #38, #4 and #39. - * const ptr ... means the pointer itself is const (not its contents that he points at). - const * ptr ... means the pointer's content is const. - "ofstream *out" ... can be changed to "ofstream * const out" (pointer is constant, not output). Signed-off-by: Frederik Heber commit 776b64559ecd2f9ada1f26f55c897028165fb398 Author: Frederik Heber Date: Tue Oct 27 17:11:22 2009 +0100 Huge refactoring to make const what is const (ticket #38), continued. - too many changes because of too many cross-references to be able to list them up here. - NOTE that "make check" runs fine and did catch several error. - note that we had to use const_iterator several times when the map, ... was declared const. - at times we changed an allocated LinkedCell LCList(...) into const LinkedCell *LCList; LCList = new LinkedCell(...); - also mutable (see ticket #5) was used, e.g. for molecule::InternalPointer (PointCloud changes are allowed, because they are just accounting). Signed-off-by: Frederik Heber commit ad37ab8566594a099bed27480eb123e4af74bc9a Author: Frederik Heber Date: Tue Oct 27 12:51:52 2009 +0100 analyzer.cpp and boundary.cpp refactored. - ticket #39 is done with respect to these files - both do not contain member functions (anymore), hence ticket #4 and ticket #38 are both fulfilled. commit 70ff329b91c50b8717dc6a315d31da29c9522774 Author: Frederik Heber Date: Tue Oct 27 10:28:07 2009 +0100 Begun with ticket #4 (shorten constructors) on class atom and class bond. - note that in bond we removed two constructor definitions which were unnecessary if standard values were given in the definition not in the declaration. Signed-off-by: Frederik Heber commit b453f9633192bf031a859545dcb7c55476ff6a0f Author: Frederik Heber Date: Tue Oct 27 09:54:44 2009 +0100 Begun with ticket #38 (make const what is const). - basically all changes to member function that now state that they do not change member attributes. - in molecule_template.hpp all member functions are declared const, as we only need start and end from molecule and these are never changed (lots of overloaded templates removed thereby). - Vector::Distance...() and ...DistanceSquared() are const now too commit 831a14fccc3c449e545ce45a4036bbbfeb01b80c Author: Frederik Heber Date: Tue Oct 27 09:53:25 2009 +0100 ..._CPPFLAGS and ..._LDFLAGS in unittests/Makefile.am put into global AM_... statements. commit 6b919f8070d9199926d9b248aff739b8305bbc57 Author: Frederik Heber Date: Tue Oct 20 10:55:17 2009 +0200 Refactored atom.cpp into multiple files. After the class atom was refactored into multiple base classes that are inherited, these base classes are also all put into separate files. This is basically a preparatory step for the like-wise refactoring of class molecule into inherited base classes and splitting up (that is there done already). Finally, we will also separate the relations, i.e. not have "atom.hpp" included everywhere and use class atom, but rather the subclasses such as TrajectoryParticle and its header files only. Signed-off-by: Frederik Heber commit c75de154f2ee6233beaf61ee389cd8f71ee7ff01 Author: Frederik Heber Date: Tue Oct 20 10:54:51 2009 +0200 iostream was missing in vector includes. commit 4455f4972f636def3a575d7d298af2682c502f5b Author: Frederik Heber Date: Mon Oct 19 15:09:29 2009 +0200 Huge Refactoring: class atom split up into several inherited classes. - There are now two parts: classes containing data (called ...Info) and classes containing associated functions: - new data classes: ParticleInfo (id and name), AtomInfo (element, position, velocity, force), TrajectoryParticleInfo, GraphNodeInfo (all graph variables), BondedParticleInfo (AdaptiveOrder, MaxOrder, ListOfBonds) - new associated function classes: TrajectoryParticle, GraphNode, BondedParticle - template functions ActOnAllAtoms(), SumPerAtom() were adapted with another template type for the class of the member function - template functions SetIndexedArrayForEachAtomTo() have their index as ParticleInfo::*index commit 9eefda14dc23d67965074a9054a484c90416b304 Author: Frederik Heber Date: Sun Oct 18 21:41:20 2009 +0200 Added BFSAccounting and DFSAccounting structures and all functions use these. Added documentation to each of the new functions of previous commits. - renamed DFS: DepthFirstSearchAnalysis_SetWalkersGraphNr(), DepthFirstSearchAnalysis_ProbeAlongUnusedBond(), DepthFirstSearchAnalysis_CheckForaNewComponent(), DepthFirstSearchAnalysis_CleanRootStackDownTillWalker() - new DFS: DepthFirstSearchAnalysis_Finalize(), DepthFirstSearchAnalysis_Init() - rewritten DFS: DepthFirstSearchAnalysis() - uses DFSAccounting and above functions, - changed&renamed BFS: InitializeBFSAccounting(), FinalizeBFSAccounting(), CleanBFSAccounting(), ResetBFSAccounting() - renamed BFS: CyclicStructureAnalysis_CyclicBFSFromRootToRoot(), CyclicStructureAnalysis_RetrieveCycleMembers(), CyclicStructureAnalysis_BFSToNextCycle(), CyclicStructureAnalysis_AssignRingSizetoNonCycleMembers() - changed BFS: BackEdge dropped from CyclicStructureAnalysis_BFSToNextCycle(), CyclicStructureAnalysis_AssignRingSizetoNonCycleMembers() commit 43587e21efd075291b9296d09704c14839147781 Author: Frederik Heber Date: Sun Oct 18 20:12:53 2009 +0200 Refactored molecule::BuildInducedSubgraph() - new functions BuildInducedSubgraph_Init(), BuildInducedSubgraph_FillParentList(), BuildInducedSubgraph_CreateBondsFromParentList(), BuildInducedSubgraph_Finalize() commit ce7cc5a8c3093070a9f2372212477b11f78c01b0 Author: Frederik Heber Date: Sun Oct 18 19:52:47 2009 +0200 Refactored molecule::BreadthFirstSearchAdd() - new function: BreadthFirstSearchAdd_Init(), BreadthFirstSearchAdd_VisitedNode(), BreadthFirstSearchAdd_UnvisitedNode() - new structure BFSAccounting contains all of the accounting data needed for Breadth First Search. commit ba4170d2dfbebfe434b06d01aed19c832651e2d6 Author: Frederik Heber Date: Sun Oct 18 19:06:28 2009 +0200 Refactored CheckAdjacencyFileAgainstMolecule(). - new functions: CheckAdjacencyFileAgainstMolecule_Init(), CheckAdjacencyFileAgainstMolecule_CompareBonds(), CheckAdjacencyFileAgainstMolecule_Finalize() Signed-off-by: Frederik Heber commit df8b199baa82d9d524d867256b1f58ec88ba477c Author: Frederik Heber Date: Sun Oct 18 18:35:25 2009 +0200 Removed ResetAllAtomNumbers(), replaced by templated SetAtomValueToValue(). commit 2cc75c3c152510b8a9d6d26c5e134d49167c533d Author: Frederik Heber Date: Sun Oct 18 18:09:26 2009 +0200 Shifted molecuke::InitComponentNumbers() to atom::InitComponentNr. Note that this is still only possible due to ListOfBondsPerAtom() -> atom::ListOfBonds() switch. commit ef9aaec99bd2d3f48063f5f75506c3db39493c39 Author: Frederik Heber Date: Sun Oct 18 17:59:52 2009 +0200 Refactored molecule::CyclicStructureAnalysis() - new functions: InitializeAccounting(), ResetAccounting(), CleanAccounting(), CyclicBFSFromRootToRoot(), RetrieveCycleMembers(), AssignRingSizetoNonCycleMembers() - new functions used in AssignRingSizetoNonCycleMembers(): BFSToNextCycle() commit 174e0ece471da3cb17f2cbf08ba655f90c27f316 Author: Frederik Heber Date: Sun Oct 18 17:13:46 2009 +0200 Refactored molecule::DepthFirstSearchAnalysis() - new functions: SetWalkersGraphNr(), ProbeAlongUnusedBond(), CheckForaNewComponent(), CleanRootStackDownTillWalker() commit 266237a46efdbba0be37a76f5e86b6814aac18d7 Author: Frederik Heber Date: Sun Oct 18 16:15:37 2009 +0200 Huge refactoring: molecule::ListOfBondsPerAtom and molecule::NumberOfBondsPerAtom removed, atom::ListOfBonds introduced. Unit Test for ListOfBonds manipulation introduced. - changes to class atom: - ~atom(): removes all bonds it is part of and unlink()s - new functions: CountBonds() - counts bonds times BondDegree, OutputGraphInfo() - graph data is output, OutputComponentNumber() - output of component numbers, OutputAdjacency() - indices of this and its neighbours, CorrectBondDegree() - corrects bond degree incrementally (by at most one) -- all since ListOfBonds is now local info - OutputBondOfAtom() - does not need ListOfBondsPerAtom, ... as ListOfBonds is now local info - new functions for ListOfBonds access: RegisterBond(), UnregisterBond(), UnregisterAllBonds() (the latter only remove from the list, do not delete, as molecule still has a global list of all bonds and does deletion.) - changes to class bond: - ~bond() uses unlink(), uses UnregisterBond() on leftatom and rightatom - removed unused bond::GetFirstBond() and bond::GetLastBond() - GetOtherAtom() has now const parameter - changes to builder.cpp: removed CreateListOfBondsPerAtom() calls, as the creation of the global arrays is not necessary anymore - changes to LinkedCell: LinkedCell::CheckBounds(int[NDIM]) does not admonish out of bonds as this is not desired for the local offset which may become out of bounds. - changes to lists.hpp templates: BUGFIX: unlink() now sets ->next and ->previous to NULL, cleanup() uses removedwithoutcheck() - new templates for molecule.hpp: SumPerAtom() allows for summation of the return value of atom:...() member fiunctions. This is needed e.g. for atom::CorrectBondDegree() - changes to MoleculeListClass: - changes due to ListOfBondsPerAtom -> atom::ListOfBonds: AddHydrogenCorrection(), FillBondStructureFromReference() - changes to class molecule: - changes due to ListOfBondsPerAtom -> atom::ListOfBonds: GuesstimateFragmentCount(), FragmentMolecule(), FillSPListandLabelVertices(), ScanForPeriodicCorrection(), DeterminePeriodicCenter(), CyclicStructureAnalysis(), InitComponentNumbers(), FindNextUnused(), CheckAdjacencyFileAgainstMolecule(), PickLocalBackEdges(), BreadthFirstSearchAdd(), BuildInducedSubgraph(), CheckForConnectedSubgraph(), molecule(), ~molecule(), AddHydrogenReplacementAtom(), RemoveBonds(), OutputListOfBonds(), removed CreateListOfBondsPerAtom() - due to removal of CreateListOfBonds(): FragmentMolecule(), CreateAdjacencyListFromDbondFile(), CreateAdjacencyList(), SetNextComponentNumber() - ActOnAllAtoms() used: CreateAdjacencyList() - uses atom::OutputBondOfAtom(), StoreAdjacencyToFile() - uses atom::OutputAdjacency(), - SumPerAtom() used: CorrectBondDegree() - uses atom::CorrectBondDegree(), - function removed: molecule::CountAtomsBonds() - shifted to atom::CountBonds(), OutputComponentNumber() - shifted to atom::OutputComponentNumber() - CountCyclicBonds() - manipulates molecule::NoCyclicBonds directly. - rewritten DepthFirstSearchAnalysis() - refactored to CyclicBondAnalysis(), OutputGraphInfoPerAtom(), OutputGraphInfoPerBond() - rewritten RemoveAtom() - uses RemoveBonds() - FIX: rewritten CleanupMolecule() - cleanup was wrong order, now is first bonds, then atoms - rewritten BreadthFirstSearchAdd() - uses molecule::CopyBond() (equal code was present multiple(!) times before) - new functions CyclicBondAnalysis(), OutputGraphInfoPerAtom(), OutputGraphInfoPerBond(), CopyBond() - New UnitTest for ListOfBonds: - tests AddBond(), RemoveAtom(), RemoveBond(), RemoveBonds() and simple deletion of atoms or bonds, where afterwards chain lists of bonds should remain intact. Signed-off-by: Frederik Heber commit b8b75d6a56dc001347024c088c6590bec244d5c7 Author: Frederik Heber Date: Sat Oct 17 21:47:58 2009 +0200 Refactored CreateAdjacencyList(). - new auxiliary functions: molecule::CorrectBondDegree(), molecule::OutputBondsList() and molecule::CountAtomsBonds() - CreateAdjacencyList() makes use of the above and the bond finding is implemented now via LinkedCell list, however with an additional TesselPoint::nr to atom* list (which is just a temporary fix until a thought comes up how to have LinkedCell of atom * in the first place). commit 07051c4e6e39dd72b279cf4798cdd094138a3371 Author: Frederik Heber Date: Sat Oct 17 21:46:28 2009 +0200 Extended class LinkedCell to handle a relative offset to current cell. - new overloaded function LinkedCell::CheckBounds(int [NDIM]) checking bounds with some relative offset. - new function LinkedCell::GetRelativeToCurrentCell() returning LinkedNodes of cell relative to CurrentCell. commit 44a59b6dd47abf93dc6c2866c46cf4ce4519de59 Author: Frederik Heber Date: Sat Oct 17 19:06:42 2009 +0200 Renamed and rewritten CreateAdjacencyList2(). - rename CreateAdjacencyList2() -> CreateAdjacencyListFromDbondFile() - initially written by Christian Neuen who was at that time not familiar with all the functions already present. The code is now shortened and tighter. Signed-off-by: Frederik Heber commit 09048c34dc6e8ccc59fdf69178f4f3e94373e508 Author: Frederik Heber Date: Sat Oct 17 18:54:46 2009 +0200 Added case 'C' to ParseCommandLineOptions with CorrelationToSurface(). - new case 'C' with CorrelationToSurface() - lots of changes in ParseCommandLineOptions() as all of the tests for ...[0] != '-' were wrong for numbers (e.g. -t -1. 0. 0. in translation case) - small fix to BinData() as 0. was given instead of 0 for second argument of outmap (but should be integer) commit ad8b0dc36a32195baf91715cdb04e24d0d5a74c7 Author: Frederik Heber Date: Sat Oct 17 18:49:59 2009 +0200 Templated version of flip now operates with references instead of pointers. - vector::SolveSystem() was changed accordingly. commit 3a9fe9f11fb9af6d172ca93d62a1b7bdfb61f183 Author: Frederik Heber Date: Sat Oct 17 18:47:06 2009 +0200 LoadMolecule externalized from Load() - new function PrepareFileBuffer() - ParseCommandLine() is no more part of class config - Load() now uses LoadMolecule and PrepareFileBuffer() - note that this is used to allow for the loading of a second molecule from a config file without the actual configuration. This is needed for the CorrelationToSurface routine (the second molecule gives the surface). commit b1f2549d14a74c382543b97323d3b0bbeeda3d56 Author: Frederik Heber Date: Sat Oct 17 18:42:37 2009 +0200 Functions to output correlations directly added. - new analysis_correlation function: OutputPairCorrelation(), OutputCorrelationToPoint(), OutputCorrelationToSurface() commit c144ed2645a2885d7e8fc364b26b37512b5309ec Author: Frederik Heber Date: Sat Oct 17 07:49:05 2009 +0200 flip() is now templated. Signed-off-by: Frederik Heber commit db6bf740d7e8febe60a8c5c791aad043f8d4717b Author: Frederik Heber Date: Thu Oct 15 10:10:10 2009 +0200 Fixed two memory leaks. - FIX: if the element database could not be parsed, in LoadPeriodentafel() still one element would be allocated, Loading failure admonished and then not free'd. Fixed - FIX: the config was allocated in main not by a new, but fixed. In its constructor Malloc calls were present. Hence, the memory was not free'd. As fixed types are free'd first at the very end of the code. Hence before any MemoryUsageObserver::getUsedMemorySize() calls ... that's why 1614 bytes were always claimed as still allocated. Fixed. - valgrind does not admonish any leaks (however, some errors) anymore when molecuilder is started and immediately quitted. Signed-off-by: Frederik Heber commit bbc338b903a7127c1e2577a93470caf743c9afc3 Author: Frederik Heber Date: Wed Oct 14 13:18:14 2009 +0200 Unit tests AnalysisCorrelation is done. - four carbon atoms were added around the hydrogen tetraeder to test CorrelationToSurface. - everything seems to work fine, three bugs were found (see previous commits). Signed-off-by: Frederik Heber commit 6cd79d42f5e59a266564a81f846c56dfa809a6b9 Author: Frederik Heber Date: Wed Oct 14 13:12:42 2009 +0200 performCriticalExit() must not be defined static. Note that static global functions are only visible within the specific source file. Removed static keyword. commit a2028ea7782e055b20b65d5106e9ef97040467ed Author: Frederik Heber Date: Wed Oct 14 13:10:47 2009 +0200 UnitTest AnalysisCorrelationToSurface revealed two bugs: - BUGFIX: if multiple triangles are closest to a point, the code failed in Tesselation::FindTriangles(). This is fixed: the externalized initialization steps were put together again into the four loops, hence the ..->end() check was in the loop again. - BUGFIX: If the AngleZero derived from the reference in Tesselation::GetCircleOfConnectedPoints() is 0, we end up with no closest triangle. This is fixed: first point in connected circle taken as reference instead, and criticalExit() if still not unzero commit f74d089a01eb7c6482561a3163788f3ac53efe1e Author: Frederik Heber Date: Wed Oct 14 13:01:47 2009 +0200 Check whether map is not NULL in GetMinMax() and BinData(). Signed-off-by: Frederik Heber commit c4d4dfcf2b2eb619122842838b8a34fed1b278e5 Author: Frederik Heber Date: Tue Oct 13 18:14:49 2009 +0200 Pair correlation analysis added. - new file analysis_correlation.cpp with the following functions: PairCorrelation(), CorrelationToPoint(), CorrelationToSurface(), GetBin(), OutputCorrelation(), and templates GetMinMax(), BinData() - three new unit tests: AnalysisCorrelationToPointUnitTest AnalysisCorrelationToSurfaceUnitTest AnalysisPairCorrelationUnitTest (each in own file) - new function DistanceToTrianglePlane() in tesselationhelpers.cpp - new function Vector::DistanceToPlane() calculates distance to a plane Unit tests are working fine. commit 93d120bdcc6b28744fc18c21d8ef1e744eaa9f1e Author: Frederik Heber Date: Tue Oct 13 18:40:34 2009 +0200 Fixed broken test "Fragmentation - Fragmentation". - BUGFIX: Code was split into CombineAllOrderListIntoOne() and FreeAllOrdersList(). In the first the combining is done and because RootStack is needed, we push_back() all pop_front() all RootKeyNr. However, the loop test was still .empty(), which never happened and an error was thrown as same keysets were tried to be inserted (assumed). Now, we store the last RootKeyNr by back() and compare the current to it. Test runs through fine. commit 407536f92b012b8b92b2dff235834903e8b9565b Author: Frederik Heber Date: Mon Oct 12 15:26:12 2009 +0200 Refactored molecule::FragmentBOSSANOVA(). - renamed functions: InitialiseSPList() -> SetSPList(), FreeSPList() -> ResetSPList() - new functions are: InitialiseSPList, FreeSPList(), FillSPListandLabelVertices(), OutputSPList(), CountNumbersInBondsList(), CombineAllOrderListIntoOne(), FreeAllOrdersList() commit 14e73aa8344b12c5bad0a9b1eaaffda56d596001 Author: Frederik Heber Date: Mon Oct 12 15:05:46 2009 +0200 Refactored molecule::PowerSetGenerator(). - new functions are: InitialiseSPList(), FreeSPList(), FillSPListandLabelVertices(), OutputSPList(), CountNumbersInBondsList(), commit d2943b9740e9b45b8ed74a7c23e842ec060bb5db Author: Frederik Heber Date: Mon Oct 12 14:49:19 2009 +0200 Rewritten molecule::molecule::SPFragmentGenerator() - new functions are: SPFragmentGenerator_ClearingTouched(), AddPowersetToSnakeStack(O), CountSetMembers(), FillBondsList(), RemoveAllTouchedFromSnakeStack() commit 5034e1c19570424d6145026e66a1daa7304c078d Author: Frederik Heber Date: Mon Oct 12 14:04:44 2009 +0200 First half of molecule_fragmentation.cpp refactoring. - new template helper function: IncrementalAbsoluteValue() which also increments itself (fixed by one) - new template molecule function: SetAtomValueToIndexedArray() which sets an attribute of atom class according to some array - Store/ParseKeySetFile() removed from class molecule, as there was no need - molecule::StoreFragmentFromKeySet() split up into: StoreFragmentFromKeySet_Init() and CreateInducedSubgraphOfFragment() - molecule::CreateMappingLabelsToConfigSequence() uses SetIndexedArrayForEachAtomTo() with new IncrementalAbsoluteValue() - molecule::ParseOrderAtSiteFromFile() uses SetAtomValueToIndexedArray() on MaxOrder and Adaptive Order - atom has new member function: OutputOrder() - molecule::StoreOrderAtSiteFile() uses ActOnAllAtoms with above - molecule::CheckOrderAtSite() rewritten, new helper functions are: GraphToIndexedKeySet(), ScanAdaptiveFileIntoMap() (therein InsertIntoAdaptiveCriteriaList()), ReMapAdaptiveCriteriaListToValue(), MarkUpdateCandidates(), PrintAtomMask() - StoreKeySetFile split up, TEFactors are now stored in StoreTEFactorsFile, same goes with Parse...() commit 4a7776a9ae51d78cc8706bd96907c2a247ba1994 Author: Frederik Heber Date: Mon Oct 12 12:30:02 2009 +0200 Complete refactoring of molecule_dynamics.cpp - new small functions: SumDistanceOfTrajectories(), PenalizeEqualTargets(), (), CreateInitialLists(), TryNextNearestNeighbourForInjectivePermutation(), MakeInjectivePermutation() - Thermostat routines (case blocks) have been shifted to small functions in atom class (and soon to be extracted from there into its own class: ThermostatedParticle ?) - old functions are a lot smaller now: MinimiseConstrainedPotential(), molecule::EvaluateConstrainedForces(), VerletForceIntegration(), also using ActOnAllAtoms - atom class has a lot of new small functions: - trajectory: ResizeTrajectory(), CopyStepOnStep(), VelocityVerletUpdate(), VelocityVerletUpdate() - constraint potential: CorrectVelocity(), Thermostat_...() commit ccd9f5b1e4f784fe73721ff1b3b2c5f78ec8df8b Author: Frederik Heber Date: Fri Oct 9 16:35:14 2009 +0200 First half of molecule_dynamics.cpp is refactored into smaller parts. - new function atom::EvaluateConstrainedForce() evaluating a constraint force - molecule::EvaluateConstrainedForces() uses the above with ActOnAllatoms() - new helper functions in molecule_dynamics.cpp: SumDistanceOfTrajectories(), SumDistanceOfTrajectories(), FillDistanceList(), CreateInitialLists(), TryNextNearestNeighbourForInjectivePermutation(), MakeInjectivePermutation() - new struct EvaluatePotential in molecules.hpp to contain most of the values for the above functions commit c111dbf810e0e3f7f92d4afa3b50cd427f3d515d Merge: 49f802c 87e2e39 Author: Frederik Heber Date: Fri Oct 9 14:18:41 2009 +0200 Merge branch 'new-delete-conversion' into CodeRefactoring Conflicts: molecuilder/src/Makefile.am molecuilder/src/helpers.cpp molecuilder/src/helpers.hpp molecuilder/src/memoryusageobserver.cpp - FIX: performCriticalExit() was declared static but not defined a such. - Merge was basically only due to libmolecuilder which was not used in CodeRefactoring branch before. - added ActOnAll Unit test to new unittests sub folder and to Makefile.am commit 87e2e39b6683b88cf56f1229adaf4e1bc2358143 Merge: d3dfe18 b9907cd Author: Frederik Heber Date: Fri Oct 9 14:08:24 2009 +0200 Merge branch 'new-delete-conversion' of ssh://adamantium/home/metzler/workspace/espack into new-delete-conversion commit 49f802cfc32887da6d23e51283966873ce964f38 Author: Frederik Heber Date: Fri Oct 9 13:57:41 2009 +0200 Implementing templated iterators done for molecule.cpp - new functions in class atom: atom::DistanceSquaredToVector(), atom::DistanceToVector() and atom::AddKineticToTemperature() - above used with ActOnAllAtoms() in molecule.cpp: molecule::OutputTemperatureFromTrajectories(), molecule::OutputListOfBonds() (uses atom::OutputBondOfAtom() which gives slightly different output than before but rather with more info) - new template SetIndexedArrayForEachAtomTo() which sets the contents of an index array according to a member function result. - above used in molecule::IsEqualToWithinThreshold() commit f66195d268aa8acd6e1a3d8ddc7ba7f220eb784b Author: Frederik Heber Date: Fri Oct 9 12:54:52 2009 +0200 forward declarations used to untangle interdependet classes. - basically, everywhere in header files we removed '#include' lines were only pointer to the respective classes were used and the include line was moved to the implementation file. - as a sidenote, lots of funny errors happened because headers were included via a nesting over three other includes. Now, all should be declared directly as needed, as only very little include lines remain in header files. commit b9907cd8232949bfc6e9d327b29d286a12d485d5 Author: metzler Date: Wed Oct 7 16:35:17 2009 +0100 Ticket 30: Put molecuilder unit tests in their own subfolder in src commit be90f17d330ec04dde01f9ed6bf79fd8a8b809ce Author: Saskia Metzler Date: Wed Oct 7 17:01:14 2009 +0200 temp commit commit e419517de9b7d686ed4d6f7fab71fb5d08e6344b Author: Frederik Heber Date: Wed Oct 7 16:26:53 2009 +0200 used forward declaration to untangle atom and bond declarations, molecule::CreateListOfBondsPerAtom() uses ActOnAllAtoms - a major problem is two classes depending on one another and we've often made constraints in order to accommodate for this. But there is an easier solution: Have forward declarations of the other class in each header file, only include the true other header file in each implementation (i.e. cpp file). - This was done with atom and bond class to allow for a new function atom::OutputBondOfAtom() - molecule::CreateListOfBondsPerAtom() uses ActOnAllAtoms with this new function. commit 23b830d97f03d2db6efacee0173bee0d34934bcb Author: Frederik Heber Date: Wed Oct 7 15:18:59 2009 +0200 molecule::CountElements() changed to use SetIndexedArrayForEachAtomTo(), molecule::OutputXYZ() fixed - in molecule::OutputXYZ() AtomCount is used - molecule::CountElements() now uses SetIndexedArrayForEachAtomTo() to get the number of atoms per element counted commit 681a8a0374ed99bd32ad357a3eda2eb36c9f922f Author: Frederik Heber Date: Wed Oct 7 15:16:13 2009 +0200 in molecule::OutputTrajectoriesXYZ() ActOnAllAtoms used by new function atom::OutputTrajectoryXYZ(). commit fcd7b69eeaa761de1f6ebc0e994186f2f9f858d5 Author: Frederik Heber Date: Wed Oct 7 14:14:15 2009 +0200 In molecule::OutputTrajectories() ActOnAllAtoms() with new function atom::OutputTrajectory() is used. For this to work, I had to change the Trajectory struct that was so far included in molecule.hpp to be incorporated directly into the class atom. NOTE: This incorporation is incomplete and a ticket (#34) has been filed to remind of this issue. However, the trajectory is better suited to reside in atom anyway and was probably just put in molecule due to memory prejudices against STL vector<>. Functions in molecule.cpp, config.cpp, molecule_geometry.cpp and molecule_dynamics.cpp were adapted (changed from Trajectories[atom *] to atom *->Trajectory). And the atom pointer in the Trajectory structure was removed. commit e9f8f930b09fee74ef361de63569c0744dc9509a Author: Frederik Heber Date: Tue Oct 6 19:57:01 2009 +0200 More functions of molecule now use templated iterators. - the following template functions are defined in molecule.hpp and implemented in molecule_template.hpp - ActOnAllVectors() - Vector of current atom is object to member function pointer - ActOnAllAtoms() - current atom is object to member function pointer - ActWithEachAtom() - current atom is parameter to molecule member function not object - ActOnCopyWithEachAtom() - Same as ActWithEachAtom() but object is not this but an extra pointer to a copy - ActOnCopyWithEachAtomIfTrue() - Same as ActWithEachAtom() but with additional condition (bool member function of atom) that has to be true - SetIndexedArrayForEachAtomTo() - current atom's index or its element's Z acts as index to a given array in conjunction with a setor function - the following functions were converted in molecule: molecule::CopyMolecule(), molecule::CopyMoleculeFromSubRegion(), molecule::Output(), molecule::OutputTrajectories(), molecule::OutputXYZ() - atom.cpp: new functions IsInParallelepiped(), overloaded Output() - helper.cpp: new template functions Increment() and AbsolutValue acting as wrapper to operator+=() and operator=() commit ebcadedc2eb5f524f09fc7618fe9f4fea00cdbb8 Author: Frederik Heber Date: Tue Oct 6 19:37:50 2009 +0200 Extended the testsuite to encompass the vital areas of molecuilder. - the vital areas are: simple geometry, Graph, fragmentation, tesselation - in molecuilder/tests a dir regression was added for each case with pre and post dirs. Pre contains files needed for the test, post contains results to compare to - builder.cpp: check for commands that need extra arguments that first arguments does not begin with '-' missing for many cases commit 21b9c3591722efc708e1482ec02108da1918128b Author: metzler Date: Tue Oct 6 12:15:50 2009 +0100 #22 Write a critical exit function commit cee0b57afea6660531722346890ed484e9ea8dd4 Author: Frederik Heber Date: Tue Oct 6 00:10:53 2009 +0200 class molecule implementation split up into six separate parts. - dynamics: Verlet integration and constraint potential - fragmentation: BOSSANOVA scheme - geometry: all operations acting on the Vector's inside the atom's - graph: supplementary functions for fragmentation, treating molecule as a bonding graph - pointcloud: implementations of virtual functions for pointcloud class, needed for Tesselation commit d09ff7ad9c8d572bf86f780836ed477e92efd995 Author: Frederik Heber Date: Tue Oct 6 00:09:51 2009 +0200 new function Vector::WrapPeriodically() and Vector::(Inverse)MatrixMultiplication has const parameters now. commit e652463fcd182a9dedbeed0eb1351e9b0bfbb92e Author: Frederik Heber Date: Tue Oct 6 00:08:57 2009 +0200 New function atom::CorrectFactor() and atom::EqualsFather(). - are just small functions used for molecule::ActOnAllAtoms(). commit eaee7fae200461527b4b31cedd8f589ef0b2a560 Author: Frederik Heber Date: Mon Oct 5 23:14:28 2009 +0200 even the class of the member function can be templated, see ActOnAllUnitTest. Note however that specializations of templated member functions are not allowed. commit 33f9f707ba379505762c0251bf773524a07503b2 Author: Frederik Heber Date: Mon Oct 5 22:51:24 2009 +0200 Member functions of Vector class may be called while going over an iteration of a list containing Vectors, thanks to member function pointers. - Unit test ActOnAllTest is the basic class for showing, how we can use any member function of Vector:: and make it act globally over a list of vectors. - this is incorporated into the definition of class molecule for the vectors contained in the atoms chained list. commit 13a5749f3ea1cfcb14e8fa7943cdf7ce459fc59b Merge: aba92d1 fa861b8 Author: Frederik Heber Date: Mon Oct 5 20:45:06 2009 +0200 Merge branch 'ConvexHull' into ActOnAll Conflicts: molecuilder/src/Makefile.am Boost implementation commit was overlapping with ActOnAllTest commit fa861b8ceb59e30faf501c271e02790e26b0afdb Author: Frederik Heber Date: Mon Oct 5 20:43:43 2009 +0200 Included BOOST library MPL into autoconf setup. commit c26f44b5c51a3902dd55fb535bd81f36ffebe3d7 Author: Frederik Heber Date: Mon Oct 5 19:14:58 2009 +0200 Fixed testsuite, removed some minor bugs. - TesselationUnitTest_SOURCES lacked memoryallocator stuff - Free does not give a message anymore, as there can be no error. - testsuite was fixed for suite 2 and 3, mostly due to changed options that were not accomodated for in the testsuite commit a33931a6926488ed74dfbf11db9e4eaf555bbf05 Merge: 7dea7c3 c0917c9 Author: Frederik Heber Date: Mon Oct 5 18:05:53 2009 +0200 Merge branch 'ConcaveHull' into ConvexHull Conflicts: .gitignore molecuilder/src/Makefile.am molecuilder/src/atom.cpp molecuilder/src/tesselation.cpp no serious overlaps, just a free Frees that were not present in ConcaveHull were MemoryAllocator class was added. commit d3dfe189d4c48a3573b1b6119d8e9a81b73246c1 Author: Frederik Heber Date: Mon Oct 5 17:43:25 2009 +0200 new/delete conversion. mode change only, nothing else. commit 5417c5f54788788592186bc7be21179131f8739b Author: Frederik Heber Date: Mon Oct 5 17:42:20 2009 +0200 New/delete conversion. 82: "main" missing in msg commit c0917c976855c93e7755fae6eabf5a1b2cd9255e Merge: 41194a7 b66c223 Author: Frederik Heber Date: Mon Oct 5 16:59:11 2009 +0200 Merge branch 'ConcaveHull' of ssh://stud64d-02/home/metzler/workspace/espack into ConcaveHull Conflicts: molecuilder/src/builder.cpp molecuilder/src/memoryusageobserver.cpp molecuilder/src/memoryusageobserver.hpp molecuilder/src/memoryusageobserverunittest.cpp molecuilder/src/memoryusageobserverunittest.hpp This conflict arised, because the #19 commit was already pushed to the server, but the commit was later "amended" locally. This is fixed, there were no real overlaps anyway. commit b66c223baf91c9bbe4c297fd4c47414c47e246a1 Author: metzler Date: Mon Oct 5 15:50:43 2009 +0100 #19 Observe memory usage commit 41194a7bf06101702d6e0b8243fa47ade9e8c24e Merge: 0227a97 c301806 Author: Frederik Heber Date: Mon Oct 5 16:35:06 2009 +0200 Merge branch 'ConcaveHull' of ssh://stud64d-02/home/metzler/workspace/espack into ConcaveHull commit aba92d1cf6f8183eb896906f52a302521acea926 Author: Frederik Heber Date: Mon Oct 5 16:31:35 2009 +0200 ActOnAll is a test (not in the molecuilder source tree, but as a singular UnitTest) to get a template function for Vector member function calls. The idea is to have a call such as: ActOnAll( AddVector (1.,0.,0.) ); which performs the AddVector on all Vectors (inside the atoms) in e.g. the molecule class. This would save a lot of unnecessary lines and would make the code in general easier to read. commit c30180691174b61d9244d1942760db46f34f09e0 Author: metzler Date: Mon Oct 5 15:12:18 2009 +0100 #19 Observe memory usage commit 7dea7c3ad9e0e608f067038eb1e30477fbd8360e Author: Frederik Heber Date: Fri Oct 2 17:19:51 2009 +0200 Fixes to the (Non)ConvexTesselation, working with 1_2_dimethoxyethylene minor changes: - BoundaryLineSet::CheckConvexityCriterion() reduced verbosity - CalculateConcavityPerBoundaryPoint() moved to tesselationhelpers.cpp - FindNonConvexBorder(): flag -> OneLoopWithoutSuccessFlag, failflag -> TesselationFailFlag, N removed - FindNonConvexBorder() - CheckListOfBaseline() used before and after insertion of straddling points - BoundaryTriangleSet::ContainsBoundaryPoint() overloaded function to check also for TesselPoint - Tesselation::InsertStraddlingPoints() - LinkedCell only redone when point was added - Tesselation::AddTesselationTriangle() - overloaded function to set index of triangle directly. - new function CheckListOfBaselines() - outsourced from FindNonConvexBorder() major changes: - BUGFIX: FindNonConvexBorder() - increment of baseline was missing - third step (Flipping baselines) removed from ConvexizeNonconvexEnvelope() - BUGFIX: BoundaryTriangleSet::GetIntersectionInsideTriangle() < should have been > in final if-statement to check whether in- or outside - Tesselation::InsertStraddlingPoints() - behavior of FindClosestTriangle() changed, hence we have to check whether returned triangle does not contain the point in question. - BUGFIX: Tesselation::FlipBaseline() - did not change LastTriangle which caused crashes on writing envelope, as it pointed to delete memory commit e4a379ed412421dc2eb4f0cd77c6fe6d7cc47ffa Author: Frederik Heber Date: Fri Oct 2 17:18:43 2009 +0200 FIX of Vector::GetIntersectionWithPlane() - Direction was not normalized. - simple case of origin is in-plane not immediately returned. commit 0227a9778aafa7940161d45586d48cd6db8113c8 Author: Frederik Heber Date: Fri Oct 2 15:01:37 2009 +0200 new tesselation unit test - excluded some more files (mostly ecut and cppunit stuff) - Tesselation unit test added commit 57066a6de6f2d289266e1e6e8466859414ebf216 Author: Frederik Heber Date: Mon Sep 28 20:47:54 2009 +0200 Various fixes and attempt to get convex hull working. - Tesselation::FlipBaseline: Now returns pointer to new baseline or NULL if not flipped - Tesselation::PickFarthestofTwoBaselines() returns volume change due to flipping - WriteTecplotFile(): ZONE name now contains nodes of last triangle, incorporates upper two changes - ConvexizeNonconvexEnvelope(): additional dummy string to add single step output of intermediate envelopes - TesselStruct::RemovePointFromTesselatedSurface(): Now returns volume lost due to point removal - ConvexizeNonconvexEnvelope() evaluates change in volume due to added/removed points - FindNonConvexBorder(): last two parameters have changed position, we check for NULL filename before writing, we add straddling points by InsertStraddlingPoints() (is better than AddBoundaryPointByDegeneratedTriangle()), IsInnerAtom() test removed - new function AddBoundaryPointByDegeneratedTriangle() to add outside points - StoreTrianglesinFile() contains the triangle storing - boundary.cpp: typos, Verbose() changes and Verbosity reduced - new function BoundaryTriangleSet::IsPresentTupel(), checks whether two triangles are the same, used in Tesselation::FindTriangles() - new attribute Tesselation::LastTriangle contains pointer to last added triangle - FIX: Tesselation::FindNextSuitableTriangle() checks for existentTriangleCount between 1 and 3 (as is the number of already present lines) and checks for zero NormalVector of created triangle - Tesselation::FindSecondPointForTesselation(): removed parameter Candidate - Tesselation::FindClosestTrianglesToPoint() now has a list of triangles from the nearest point which we look through for nearest triangle - BUGFIX: Tesselation::IsInnerPoint() now takes center of triangle with respect to point to decide whether in- or outside - FIX: Tesselation::GetPathsOfConnectedPoints() notes down touched triangles as well in order move along the surrounding triangles sequentially - FIX: Tesselation::RemovePointFromTesselatedSurface(): Huge changes, from the closed path of connected points we remove one by one by adding the respective triangle and try to do it in such an order, that the volume is maximized - new function Tesselation::FindAllDegeneratedTriangles(), pendant to Tesselation::FindAllDegeneratedLines() - FIX: new function Tesselation::RemoveDegeneratedTriangles() - new function Tesselation::AddBoundaryPointByDegeneratedTriangle() Moved tesselation writing to tesselation.cpp - WriteVrmlFile(), WriteRaster3dFile(), WriteTecplotFile() moved to tesselation.cpp - these also don't use molecule anymore, but the PointCloud structure (hence, bonds are no more visible) - new function TesselStruct::Output() which performs the writing - new function InsertSphereInRaster3D(), which places a sphere at the position of the last triangle commit 91e7e4a510c48a116682e9998422b928cf2f1117 Author: Frederik Heber Date: Mon Sep 28 20:46:25 2009 +0200 new function CalculateVolumeofGeneralTetraeder(). - is used when a point is removed to evaluate the loss of volume in the envelope. commit d52e70c6c193b4da43bf1669f9b468e2b6092897 Author: Frederik Heber Date: Mon Sep 28 20:43:02 2009 +0200 Small fixes. - FIX: atom::~atom(): Name is free'd - config::Load(): MDSteps is set to 0 (switched off) if there is only one step - vectorunittest.cpp: includes sorted in alphabetical order commit f7f7a4e1d7ef4e1b6442660248ec41c73e743f8f Author: Frederik Heber Date: Mon Sep 28 20:39:28 2009 +0200 Implemenation of embedding merge, untested. LinearInterpolation now has switch for using identity map. - embed merge in MoleculeListClass determines the non-convex envelope and tries to fill the domain with the filler molecule everywhere outside of this domain - is added to MergeMolecule in builder.cpp, case 'e' - in molecule::LinearInterpolationBetweenConfiguration() now has additional parameter to tell whether we have to look for a mapping or use the identity. commit 8cd903035b3501b8a0e39153bb9c28f97d662d5f Author: Frederik Heber Date: Mon Sep 28 20:38:06 2009 +0200 LinkedCell has another constructor initialised from LinkedNodes (list of Nodes). commit d049668ca4fb401ecc4fb71099658175b0c052c9 Author: Frederik Heber Date: Mon Sep 28 20:31:58 2009 +0200 Added Tesselation unit test - new file tesselationunittest with simple tetraeder UnitTest for checking IsInnerPoint() - added to Makefile.am commit 29812d568aaa49fa5ca9e12066f70b95b8cfe954 Author: Saskia Metzler Date: Mon Sep 21 13:48:42 2009 +0200 Ticket 11: use templates and/or traits to fix Malloc/ReAlloc-Free warnings in a clean manner commit 065e8257b9effcf42c1551ca4451070554075674 Author: Frederik Heber Date: Fri Aug 21 14:19:08 2009 +0200 FIX: Tesselation::RemovePointFromTesselatedSurface() is working correctly now, heptan is de-tesselated without any memory leaks. - changed some verbosity of AddTesselation...() and RemoveTesselation...() to ease bug-hunting - new function Tesselation::GetPresentTriangle() which is similar to CheckPresenceofTriangle() but returns the found triangle. - new function Tesselation::GetAllTriangles() returns list of all triangles to a given boundary point - the following functions and changes are all needed to recreate triangles after removal of a boundary point in the correct manner. - removed GetNeighboursOnCircleOfConnectedPoints(), just use GetCircleOfConnectedPoints() - new function Tesselation::GetAllConnectedPoints() which returns all uniquely connected points (set not list) - changed function GetCircleOfConnectedPoints() which works on GetAllConnectedPoints() to bring them into order of their angles - new function Tesselation::GetPathsOfConnectedPoints() and Tesselation::GetClosedPathsOfConnectedPoints() which build upon one another, getting the closed paths the connected points represent by looking at the adjacency of the triangles - changed Tesselation::RemovePointFromTesselatedSurface(): Triangles are marked for removal, then removed in one loop. We use GetClosedPathsOfConnectedPoints() to obtain the correct sequence and then go through each of the closed paths and re-create the triangles as before commit d4fa238d851e8ae11543f492fb106a7a325508b2 Author: Frederik Heber Date: Fri Aug 21 14:17:52 2009 +0200 New function RemoveAllBoundaryPoints() for sequentially removing all boundary points. - This is meant as a pre-test for the ConvexizeNonconvexTesselation(). - new function is incorporated into builder.cpp:ParseCommandLineOptions for case 'o' commit 9ba9ee5156b811b6889c14479c043d2061fabdc0 Author: Frederik Heber Date: Fri Aug 21 14:17:25 2009 +0200 formula typo in molecule::PrincipalAxisSystem() fixed commit 89c8b25b009146faf28147259d014f97a6f3c327 Author: Saskia Metzler Date: Thu Aug 20 17:40:49 2009 +0200 Ticket 17: Write new function molecule::CopyMoleculeFromSubRegion() commit 78b73c83586caecb47414ddf8f13f2e8d0da59b3 Author: Saskia Metzler Date: Thu Aug 20 13:35:19 2009 +0200 Ticket 16: Unit tests for Vector::RotateVector(), additionally fixing the function commit 34e05926b0e581fa27fb52f292bc4ac9378e13b2 Merge: 1d9b7aa 7c14ecc Author: Frederik Heber Date: Wed Aug 19 16:40:33 2009 +0200 Merge branch 'ConcaveHull' of ssh://stud64d-02/home/metzler/workspace/espack into Ticket14 Conflicts: molecuilder/src/boundary.cpp molecuilder/src/tesselation.cpp - in boundary.cpp: FindConvexBorder() - overlay due to PickFarthestofTwoBaselines() - in tesselation.cpp: CheckConvexityCriterion() - overlay due to verbosity change on return, getAngle() -> GetAngle() commit 1d9b7aa1fbdc49500a7e863a8553e98d6859a779 Author: Frederik Heber Date: Wed Aug 19 16:31:29 2009 +0200 Smaller fixes, but convex tesselation not working yet - BoundaryPointSet::value initialized. - ConvexizeNonconvexEnvelope() - iteratively FlipBaselines() and RemovePointFrom...() - BoundaryLineSet::CheckConvexityCriterion() returns convex if triangles are missing, reduced verbosity - Tesselation::IsConvexRectangle() - not working due to buggy GetClosestPoint and ClosestPoint was removed too early - BUGFIX: GetClosestPointBetweenLine() - NewOffset was wrong, projection to relative to plane offset, NewDirection wrong also, as has to be absolute, not relative for GetIntersection...() - Tesselation::RemovePointFromTesselatedSurface() - we first gather all removal candidates, then erase them, still memory leaks and warnings from valgrind though commit 99c4846fa2f358d851a49eaa19e8427645cac325 Merge: 0077b5c ef9df36 Author: Frederik Heber Date: Wed Aug 19 14:30:21 2009 +0200 Merge branch 'VectorUnitTest' into ConcaveHull commit ef9df3674aa570dbb84b779f3c1e9026ab21dbeb Author: Frederik Heber Date: Wed Aug 19 14:23:05 2009 +0200 VectorUnitTest extended to Projections and Line intersection, some subsequent bug fixes. - VectorUnitTest is now under noinst_PROGRAMS, not installed in bin anymore - VectorUnitTest: EuclidianTest split up into EuclidianScalarProductTest,EuclidianNormTest,EuclidianDistancesTest,EuclidianDistancesTest - New VectorUnitTests: ProjectionTest and LineIntersectionTest - BUGFIX: Vector::GetIntersectionWithPlane() - bug due to LineVector renaming (LineVector, LineVector2 -> Origin, LineVector), used LineVector instead of Origin (LineVector however is now relative to Origin!) - BUGFIX: Vector::GetIntersectionOfTwoLinesOnPlane() - completely rewritten, algorithm was non-sense or at least not understood. Note: VectorUnitTest is running fine. commit 658efbccf150d86344577a2c04b5ed24167f3d03 Author: Frederik Heber Date: Wed Aug 19 14:22:08 2009 +0200 Replaced Vector::Projection() by Vector::ScalarProduct() - Projection before was just a return of the Vector::ScalarProduct(). We change it now, to make it return a projected vector, the counterpart to ProjectOntoPlane commit 7c14ecc020f95af3d19a6e849aec7d1868a750d2 Author: Saskia Metzler Date: Tue Aug 18 15:59:11 2009 +0200 Ticket 15: new function RemoveDegeneratedTriangles() Added functions to find and remove surplus degenerated triangles. commit 54a746bf13a012b2b59a27439528a582d34912f8 Author: Frederik Heber Date: Tue Aug 18 10:38:46 2009 +0200 Incorporation of Unit test on class Vector. - new file leastsquaremin.[ch]pp has least square minimisation which is otherwise unclean between classes molecules and Vector Unit test (later tests rely on good results of earlier ones) - incorporation of cppunit into configure.ac and Makefile.am of molecuilder/src - UnityTest: test IsZero and IsOne - SimpleAlgebraTest: tests algebra - OperatorAlgebraTest: tests algebra with operator implementations - EuclidianTest: tests norms and distances changes to class Vector: - Vector::IsNull() -> IsZero() - new function Vector::IsOne() similar to IsZero() - BUGFIX: Vector::IsNULL() (thx to unit test :) - Tesselation::getAngle() changed due to above rename commit 0077b5c0708da6c63d98d637cee5272400fe8565 Author: Frederik Heber Date: Tue Aug 18 10:42:39 2009 +0200 Further bugfixes to three-step-procedure in convex envelope, not yet working. - new functions StoreTrianglesinFile() and CalculateConcavityPerBoundaryPoint - new functions Tesselation::PrintAll...() to print all points, lines and triangles currently on the boundary (simply to remove commented-out code) - FIX: Tesselation::IsConvexRectangle(): just needs one closest point and simply checks the sign of the scalar product with both endpoints to determine in-/outside - BUGFIX: Tesselation::PickFarthestofTwoBaselines(): NewOffset was wrong by the offset to the plane commit f1cccd4375bd7f3e03fcaa64b9c44bc032e44c74 Author: Saskia Metzler Date: Mon Aug 17 15:20:16 2009 +0200 Ticket 14: Rename .._.. functions in boundary.cpp commit 0936451cc73a5f07a9a4d57aa947d09abf3898a4 Author: Frederik Heber Date: Mon Aug 17 12:48:03 2009 +0200 Rewrite of ConvexizeNonconvexEnvelope() with three steps: Remove concave spots, make all lines best possible, removed concave lines. Is not working yet! - fixes to write_tecplot_file(): Checks for NULL TesselStruct, write variable extra variable U (contained in BoundaryPointSet), and use .size() instead of ...onBoundaryCount for numbers - Find_convex_border(): while loop till break in CorrectConcaveBaselines() replaced by a single loop over all boundary lines with PickFarthestofTwoBaselines() - ConvexizeNonconvexEnvelope(): documentation, needs molecule and filename to save tesselations, three steps consisting of single loops: RemovePointFromTesselatedSurface(), PickFarthestofTwoBaselines(), IsConvexRectangle(). And we calculate remaining concavity by CheckConvexityCriterion for all lines to a boundary point and store it as "U" in the tecplot files. commit 16d86622dc2c759142b589c64308c884f9339eb6 Author: Frederik Heber Date: Mon Aug 17 12:30:53 2009 +0200 documentation, some renames (..Triangle.. -> ..Tesselation..) and a bunch of new functions needed for ConvexizeNonconvexEnvelope() - all of function documentation in place - AddTriangle...() is now called AddTesselation...() which makes more sense, as they mainly add points, lines and triangles to the global tesselation lists - New functions RemoveTesselation...() that erase points, lines and triangles and are counterparts to the AddTesselation...() functions (Note: They mostly do what the destructors did, only they erase also from global lists by not calling delete for subelements, but RemoveTesselation...() which does the job) - ~BoundaryLineSet() checks whether both endpoints are still present, is more robust, as they may be missing from RemoveTesselation...() - ~BoundaryTriangleSet() checks earlier whether lines are still present, same argument - AddPoint() is now called AddBoundaryPoint(), works on *BPS array, AddTesselation...() work on *TPS array -> cleaner separation - new function Tesselation::IsConvexRectangle() checks whether the rectangle made out of the four points of the two triangles with the same baseline in between, is convex or concave. this is needed for ConvexizeNonconvexEnvelope() - Tesselation::CorrectConcaveBaselines() renamed to Tesselation::PickFarthestofTwoBaselines, which uses GetClosestPointBetweenLine() to check whether one baseline is above the other with respect to the BaseLineNormal vector and always modies the tesselation so that the higher one is used. - new function GetClosestPointBetweenLine() which calculates the closest point on a line with respect to another line. - new function Tesselation::FlipBaseline() does most of what CorrectConcaveBaseLine() did before only without the Convexity check (is done in boundary.cpp:Convexize...()) - Tesselation::GetCircleOfConnectedPoints() renamed to Tesselation::getNeighboursonCircleofConnectedPoints() and new function Tesselation::GetCircleOfConnectedPoints() which really returns just the circle of points, the renamed function works on the result of the new one. - new function Tesselation::RemovePointFromTesselatedSurface() which just removes the point, re-creating its triangles with the remainder of the points to keep the surface closed. commit 86381b38132f1af7b1e83f6a7c271dc5decbac5c Author: Frederik Heber Date: Mon Aug 17 12:29:03 2009 +0200 Sorted the menu list in ParseCommandLineParamaters() and print volume instead of surface for case 'o' commit 7e19c35db99594a84d90502517362ecf24203356 Author: Frederik Heber Date: Thu Aug 13 22:31:12 2009 +0200 First version of the user guide in xml (docbook format) - introduction, gui and command-line interface commit 570125a3ba6c2ef5e3412fa0a5f0511fb9b58bdb Author: Frederik Heber Date: Thu Aug 13 22:30:07 2009 +0200 Manpage is created via xmlto with a docbook stylesheet. - Hooks in Makefile.am are taken from TREMOLO project - manpage is in molecuilder/doc/molecuilder.xml.in commit 08ef350a55813b0a4db675d13b4659553f889216 Author: Frederik Heber Date: Mon Aug 10 18:11:47 2009 +0200 New function ConvexizeNonconvexEnvelope() to calculate the volume of a non-convex envelope. The central idea is that the volume of a convex envelope is easy to determine as a sum of pyramids with respect to a center inside the envelope. Hence, if we can "reduce" the non-convex envelope to a convex one in such a way that we know the added volume, we may determine the volume of a non-convex envelope. The nice side effect is that we may use our Find_non_convex_border() algorithm to calculate also the convex envelope. - We go through all BoundaryPoints and check whether one of its Baselines does not fulfill the ConvexCriterion. If so, we remove it, as it can not be a boundary point on the convex envelope, and re-construct the attached triangles. The added volume is a general tetraeder, whose formula is known. - FIX: Find_convex_border() - We check whether AddPoint is successful or not. - builder.cpp: case 'o' - changed to use ConvexizeNonconvexEnvelope() instead of Find_convex_border() - Tesselation:AddPoint() - now takes second argument which is the index for BPS and always set BPS to either the newly created or the already present point. Return argument discerns between new and already present point. - Tesselation::BPS, BLS, BTS are now public not private. We have to access them from ConvexizeNonconvexEnvelope() commit 5c7bf82e2f560799e5659f7449a8e27e32e57f91 Author: Frederik Heber Date: Sat Aug 8 21:25:28 2009 +0200 BUGFIXes to Find_convex_... and Find_non_convex_... algorithms - Find_non_convex_border() - very first baseline of starting triangle is skipped as it is the most outward. - BoundaryLineSet::TrianglesCount is removed and replaced by triangles.size(), as it is redundant and we made mistakes in not reducing TrianglesCount on triangle erase. - BoundaryLineSet::CheckConvexityCriterion() - extra check when NormalVector point in the very same directions, - BoundaryTriangleSet::GetIntersectionInsideTriangle() - CrossPoint return value is checked, i===3 checked not >3! - new stream operator for TesselPoint with single argument. - class Tesselation inherits PointCloud and implements all functions (including virtual destructor) in order to have PointsOnBoundary parsable by LinkedCell. - Tesselation::InsertStraddlingPoints() - LinkedCell is created for every atom just from the BoundaryPoints and not for all (so that only BoundaryPoints can be found), old triangle is now really deleted, lots of verbosity added and fixed. - Tesselation::GetCommonEndpoint() - connectedClosestPoint is deleted lateron, SecondPoint argument but not used. - Tesselation::FindClosestPoint() - returns second second closest point in new second argument. - Tesselation::getCircleOfConnectedPoints() - we find the BoundaryPoint if possible and just look through its lines if found, plane is centered at closest point and normal is between it and the center of all on circle, getAngle() corrections incorporated and vector is always projected onto circle plane. - new function Tesselation findSecondClosestPoint(). - getAngle() - just receives third vector with which it dedices between [0,pi) and [pi,2pi), the vectors are assumed to be relative to one common center already. commit 8bb475fa04486206c9cea1c5ac3b23dc6b485b02 Author: Frederik Heber Date: Sat Aug 8 21:22:28 2009 +0200 ParseCommandLineOptions(), NonConvex tesselation is now clocked. commit 46670dae4437df2f6e77b2dd3520e2154529a2c4 Author: Frederik Heber Date: Sat Aug 8 21:19:23 2009 +0200 BUGFIXES to some vector functions. - Vector::MakeNormalVector() ... Projection lacks ../Norm()/Norm() and hence produced wrong vector. - Vector::GetIntersectionWithPlane() - checks for uniqueness and Bronstein formula removed and correct one implemented. - Vector::GetIntersectionOfTwoLinesOnPlane() - Bronstein formula removed, correct procedure implemented. - Vector::IsNull() is const function. commit 055861eafd52160fc810dab2462158c84732865e Author: Frederik Heber Date: Sat Aug 8 21:17:51 2009 +0200 new stream operator with just one parameter and virtual destructor commit 8d31ce674fb76b7998a2a9a53500aea52dd6b405 Author: Frederik Heber Date: Fri Aug 7 14:50:27 2009 +0200 excluded unimportant stuff, depcomp and install-sh from util commit 133d56d645e8dd889bb7a2a950dd50a4b08afcaf Author: Frederik Heber Date: Fri Aug 7 14:48:06 2009 +0200 output of terminating special property comment in .r3d file had no "#" in front. commit 1999d87b6471a288af309168af32747b142fec73 Author: Frederik Heber Date: Fri Aug 7 14:46:27 2009 +0200 BUGFIX: PointCloud implementation in molecule stopped one before last, IsLast() -> IsEnd() - PointCloud function rename: IsLast() -> IsEnd() - molecule::GoToNext() goes till end, not till end->previous commit f3278bbc247394ddf549f3044faf52fd11b71543 Author: Frederik Heber Date: Fri Aug 7 11:13:21 2009 +0200 Test case of filling a simulation domain with water included. commit 1953f90f687a36e6e1f3655d77841bf98a36954c Author: Frederik Heber Date: Fri Aug 7 11:12:19 2009 +0200 FIX: We have to check whether we create a degenerate triangle also on its first occurence! I.e. in all cases we don't want to create two lines in place were one is already with two triangles attached. This fixed a bug with cholesterol immediately. commit 9f97c592967c6641dc8bc6bedc88f12cc114a8ff Author: Frederik Heber Date: Tue Aug 4 15:55:11 2009 +0200 FillWithMolecule() for testing built into ParseCommandLine() commit ef0e6d96aad35cd075ae8135b5ccdb5f89b697c9 Author: Frederik Heber Date: Tue Aug 4 15:53:55 2009 +0200 find_(non)_convex_border TesselStruct is not free'd anymore, mol->TesselStruct used, find_non_convex_border fixes but incomplete commit 62bb9107f821c9042c74ce527f8ea92836fdb98c Author: Frederik Heber Date: Tue Aug 4 15:48:57 2009 +0200 Fixes for concave hull creation - fixed BoundaryLineSet::CheckConvexityCriterion(), we now compare the two heights of the triangles, not the NormalVector which was nonsense - new functions BoundaryLineSet::GetOtherEndpoint(), BoundaryTriangleSet::GetThirdEndpoint() - Tesselation::InsertStraddlingPoints() receives LinkedCell pointer and uses FindClosestTrianglesToPoint(), and some verbosity added - generally replaced [aA]tom by [pPoint] - Tesselation::CorrectConcaveBaselines() (almost) corrected - IsInnerPoint is overloaded function which calls FindClosestTriangleToPoint() to decide - getAngle() receives references instead of copies with exception of OrthogonalVector which is made orthonormal to reference - center (is a FIX) commit 03e57a66d5166aefd366ba8b83e5c9048de1138d Author: Frederik Heber Date: Tue Aug 4 15:47:05 2009 +0200 Smaller FIXES to molecule class - new pointer TesselStruct was not initialzied to NULL - corrected molecule::CenterInBox(), it now really centers in the given cell_size box (no idea what it did before that) - as TesselStruct is now a part of the molecule, we remove it on deleting the molecule if it's not NULL commit ab193235b483df715e298c1c8ca5b09c5ada6abb Merge: 0dbddc2 edb93cc Author: Frederik Heber Date: Mon Aug 3 22:21:05 2009 +0200 Merge branch 'TesselationRefactoring' into ConcaveHull Conflicts: molecuilder/src/boundary.cpp molecuilder/src/boundary.hpp molecuilder/src/linkedcell.cpp molecuilder/src/linkedcell.hpp molecuilder/src/molecules.hpp All of Saskia Metzler's new function were transfered from boundary.cpp to tesselation.cpp and the changes due to TesselPoint, LinkedCell and so on incorporated. commit 0dbddc24a89f547aa564634e7647f87ec8ce9700 Merge: 2319ed7 8c54a3b Author: Frederik Heber Date: Mon Aug 3 20:58:46 2009 +0200 Merge branch 'ConcaveHull' of ssh://heber@192.168.194.2/home/metzler/workspace/espack into ConcaveHull Conflicts: molecuilder/src/atom.cpp molecuilder/src/boundary.cpp molecuilder/src/boundary.hpp molecuilder/src/linkedcell.cpp molecuilder/src/linkedcell.hpp molecuilder/src/molecules.hpp molecuilder/src/vector.hpp - added Saskia Metzler's code that finds whether a point is in- or outside. - The code is not yet incorporated, but I rather want to continue with merging TesselationRefactoring first. commit 8c54a3b5f6bdf770309a91dff75fb62f47d91b6d Author: Saskia Metzler Date: Mon Aug 3 18:48:46 2009 +0200 Adding functions IsInnerAtom() and IsInnerPoint() which can check whether an atom (or a point) is inside or outside the tesselation structure. commit ee1b1672b32e3729acbddd8118c30803b9bca638 Author: Saskia Metzler Date: Mon Aug 3 18:48:00 2009 +0200 Compare and output operator for atom takes const argumen commit 0f453875346dd787f21aaad4f1becabd1a2451af Author: Saskia Metzler Date: Mon Aug 3 18:45:38 2009 +0200 new function LinkedCell::GetNeighbourBounds() - LinkedCell::GetNeighbourBounds() needed as atom or vector to seek nearest neighbour for must not necessarily be contained in the LinkedCell grid itself. Hence, we have to use specific bounds for the NN search which this function returns. commit 9c20aaa1c08f264c3ed52a051a26143ef9f89b2e Author: Saskia Metzler Date: Mon Aug 3 18:44:16 2009 +0200 new function isNull(), output operator takes const argument commit 321a1147844ffaa7cfb1635ec3753966bbb0bba2 Author: Saskia Metzler Date: Mon Aug 3 18:43:42 2009 +0200 output operator now takes const argument commit edb93cca39cdba9e5dedc74589ea71ab1742cedd Author: Frederik Heber Date: Mon Aug 3 17:26:32 2009 +0200 Some minor fixes with regards to what needs to be included where and not more. commit cd4ccccc02ace6d5e4493281f6cfec892fadbdcf Author: Frederik Heber Date: Mon Aug 3 17:09:12 2009 +0200 definitions for class element and verbose moved to their own header files and reducing contents of helpers.hpp commit a80fbdfe7ff2c5de6edfc1365430bcadc4e1a6a3 Author: Frederik Heber Date: Mon Aug 3 16:58:43 2009 +0200 class config definitions moved to their own header file. NOTE: Tesselation of heptan was working correctly! (The config file just grew bigger and bigger that's why more and more triangles were added) commit 357fba6ccb2cf9e2d97f501d5968558a706028a5 Author: Frederik Heber Date: Mon Aug 3 16:48:42 2009 +0200 Huge refactoring of Tesselation routines, but not finished yet. - new file tesselation.cpp with all of classes tesselation, Boundary..Set and CandidatesForTesselationOB - new file tesselationhelper.cpp with all auxiliary functions. - boundary.cpp just contains super functions, combininb molecule and Tesselation pointers - new pointer molecule::TesselStruct - PointMap, LineMap, TriangleMap DistanceMap have been moved from molecules.hpp to tesselation.hpp - new abstract class PointCloud and TesselPoint - atom inherits TesselPoint - molecule inherits PointCloud (i.e. a set of TesselPoints) and implements all virtual functions for the chained list - TriangleFilesWritten is thrown out, intermediate steps are written in find_nonconvex_border and not in find_next_triangle() - LinkedCell class uses TesselPoint as its nodes, i.e. as long as any class inherits TesselPoint, it may make use of LinkedCell as well and a PointCloud is used to initialize - class atom and bond definitions have been moved to own header files NOTE: This is not bugfree yet. Tesselation of heptan produces way too many triangles, but runs without faults or leaks. commit 2319ed7194f122bf4ff43ec6b7ea796f88df7fb3 Author: Frederik Heber Date: Mon Aug 3 10:10:09 2009 +0200 We are one step further in fixing the convex hull: There are two functions of Saskia Metzler missing, but then we may proceed with testing whether the simple correction scheme of the convex envelope works, but one thing: Right now we cannot associate a Tesselation to its molecule as the snake bites it's one tail. Hence, the next commit will consist of fixing this bad-OOP issue. - Makefile.am: Just some alphabetical resorting. - atom::atom() new copy constructor - builder.cpp: some output for cluster volume, molecule::AddCopyAtom() uses new copy constructor - FillBoxWithMolecule() - new function to fill the remainder of the simulation box with some given filler molecules. Makes explicit use of the tesselated surfaces - find_convex_border() - InsertStraddlingPoints() and CorrectConcaveBaselines() is called to correct for atoms outside the envelope and caused-by concave points - Tesselation::InsertStraddlingPoints() enlarges the envelope for all atoms found outside, Tesselation::CorrectConcaveBaselines() corrects all found baselines if the adjacent triangles are concave by flipping. - boundary.cpp: Lots of helper routines for stuff further below: - BoundaryLineSet::IsConnectedTo() checks whether lines have common endpoint - BoundaryLineSet::CheckConvexityCriterion() checks whether adjacent triangles are convex or concave - BoundaryLineSet::ContainsBoundaryPoint() checks whether line contains a given boundary point - BoundaryTriangleSet::ContainsBoundaryLine() and BoundaryTriangleSet::ContainsBoundaryPoint() check whether triangle contains boundary line or point - BoundaryTriangleSet::GetIntersectionInsideTriangle() calculates intersection point between line and triangle, - The following routines are needed to check whether point is in- or outside: - Vector::GetIntersectionWithPlane() calculates intersection point of a plane and a line. - Vector::GetIntersectionOfTwoLinesOnPlane() intersection of two lines on the same plane. - FIX: Tesselation::AddPoint() - newly created BoundaryPoint is removed if already present. Problem: We want to associate a Tesselation class with each molecule class. However, so far we have to know about atoms and bond and molecules inside the Tesselation. We have to remove this dependency and create some intermediate class which enables/encapsulates the access to Vectors, e.g. hidden inside the atom class. This is also good OOP! The Tesselation also only needs a set of Vectors, not more! commit e1589ea2c3a4eed43b9502009d458076e3ade3cb Author: Frederik Heber Date: Tue Jul 28 15:02:51 2009 +0200 Convex tesselation is now working also for heptan. But the convex hull of the bigger molecules is too small. - GetBoundaryPoints(): Replaced Norm() by NormSquared where possible - GetBoundaryPoints(): When throwing out points, comparison between height and MinDistance now takes MYEPSILON environment into account. - Tesselation::TesselateOnBoundary(): BUGFIX - BaseLineCenter was calculated twice the sum of one endpoint not of either endpoint. - Tesselation::TesselateOnBoundary(): We check if target and winner have same angle which of the two has angle close to desired propagation direction. commit d4d0ddccf2853b9e013bf8204dd622c8f530826e Author: Frederik Heber Date: Tue Jul 28 15:01:15 2009 +0200 New function Vector::NormSquared() and Angle checks whether Norm's are unequal to zero. - New function Vector::NormSquared() calculates norm squared - Vector::Angle() checks whether the norms of the vectors are not zero, otherwise returning M_PI commit a567c3a8651fbb1c0c56eed16c6e5bedfe17a176 Author: Frederik Heber Date: Tue Jul 28 12:31:26 2009 +0200 ConvexTesselation working again. - File was not written, as NULL was given in builder.cpp instead of argv[argptr] - Tesselation::TesselateOnBoundary() - lots of small errors with the normal vector of the triangle, the propagation direction check and so forth - DetermineCenterOfAll() has sign changed, this was adapted in boundary.cpp - heptan is NOT working yet, as too many boundary points are thrown away commit fcc9b099e73c625e76e054aaefb6335f45efa939 Author: Frederik Heber Date: Mon Jul 27 16:53:57 2009 +0200 FIX: DetermineCenterOfAll() did point in wrong direction, convex envelope working again, but algorithm is not stable - molecule::DetermineCenterOfAll() center was the sum of all scaled by -1/Number instead of 1/Number. This was corrected for in the code elsewhere. Now, it returns the correct center and where it's elsewhere called we subtract instead of add - Tesselation::TesselateOnBoundary() does now something meaningful. The NormalVector for the starting triangle could not be constructed, as we lacked the initial normal vector. It is however easy to construct from the center of all and the center of the starting triangle. However, the algorithm is faulty for 1_2_dimethylethane. - GetBoundaryPoints() - as we do not translate to center of gravity anymore, we have to subtract the center of all. Otherwise the radial method for determining boundary points does not work. Is not yet working. commit 3c4f0435d3d801e00da1a7a1cedd00e8cef9988f Author: Frederik Heber Date: Mon Jul 27 16:19:12 2009 +0200 BUGFIX: config::Load() added atoms in wrong order, hence resulting in wrong names. - config::Load() - int in LinearList should have been mapped not original one commit b6d8a94261d259df5d3291b5b164bb1d0c98aa1d Author: Frederik Heber Date: Mon Jul 27 16:08:27 2009 +0200 BUGFIX: ManipulateAtoms() had mol = NULL - in ManipulateAtoms() the mol was not set to *ListRunner commit a20e6a14f955389f8b2eec083a93d9553a145ba5 Author: Frederik Heber Date: Mon Jul 27 16:07:25 2009 +0200 BUGFIX: molecule::ReturnFullMatrixforSymmetric had it still all wrong. - molecule::ReturnFullMatrixforSymmetric() corrected - InverseMatrixMultiplication() prints det on error commit d30402b028f6482fde29f70c53eebba7e5dd62aa Author: Frederik Heber Date: Mon Jul 27 10:16:03 2009 +0200 Split VolumeOfConvexEnvelope() into find_convex_border() and remainder. - Convex envelope is not working anymore, in the state of fixing it and trying to refactor code a bit. - planned to have VolumeOfConvexEnvelope() to be replaced by VolumeOfEnvelope(), which can also do Non-Convex-Envelopes commit 36ec71f4484a1913d51cd83e623c516fde7c113f Merge: 042f828 51c910f Author: Frederik Heber Date: Thu Jul 23 16:23:32 2009 +0200 Merge branch 'master' into ConcaveHull Conflicts: molecuilder/src/analyzer.cpp molecuilder/src/bond.cpp molecuilder/src/boundary.cpp molecuilder/src/boundary.hpp molecuilder/src/builder.cpp molecuilder/src/config.cpp molecuilder/src/datacreator.cpp molecuilder/src/datacreator.hpp molecuilder/src/defs.hpp molecuilder/src/ellipsoid.cpp molecuilder/src/joiner.cpp molecuilder/src/molecules.cpp molecuilder/src/molecules.hpp molecuilder/src/parser.cpp molecuilder/src/parser.hpp merges: - analyzer.cpp: all from master, due to Hessian; only Chi(PAS)Fragments from HEAD - bond.cpp: bond::GetOtherAtom gives cerr output if neither atom matches from master - boundary.cpp: all from HEAD, is tesselation stuff - boundary.hpp: all from HEAD, is tesselation stuff - builder.cpp: Center...(), RemoveAtoms(), SaveConfig() from master, is MultipleMolecules, rest from HEAD (Translation and ...) - config.cpp: FileBuffer stuff from HEAD, only some taken over from HEAD - datacreator.cpp: all from master, is Hessian - datacreator.hpp: all from master, is Hessian - defs.hpp: all from master, is Thermostat - ellipsoid.cpp: all from HEAD, created during tesselation - joiner.cpp: all from master, is Hessian - molecules.cpp: molecule::molecule(), ConstrainedPotential() stuff, Thermostats(), RemoveAtom(),CreateAdjacencyList(), FragmentMolecule() from master, CenterInBox(), CenterEdge(), CenterOrigin(), CenterPeriodic() (instead of CenterAtVector()), TranslatePeriodically(), DeterminePeriodicCenter(), Output...(), ReturnFullForSymmnetricMatrix() from HEAD - molecules.hpp: see above, ConfigfileBuffer struct from HEAD, class config joined - parser.cpp: all from master, is Hessian - parser.hpp: all from master, is Hessian compilation fixes: - molecules.cpp: PrincipalAxisSystem() - CenterGravity() -> CenterOrigin(), DetermineCenter() -> DeterminePeriodicCenter - datacreator.cpp: all char * to const char * - builder.cpp: ParseCommandLineOptions() - case 'c': had argptr++ and argptr+=3; case 'O' - x was not zero'd commit 042f8283d213f623e8320856dfac9e6d55aa6800 Author: Frederik Heber Date: Thu Jul 23 16:21:57 2009 +0200 fixed indentation from tabs to two spaces. commit 51c910f40c6eb9f4f247c7ecb68574a129861691 Merge: d067d45 375b458 Author: Frederik Heber Date: Thu Jul 23 16:04:47 2009 +0200 Merge branch 'AtomRemoval' Conflicts: molecuilder/src/builder.cpp molecuilder/src/molecules.cpp merges: - builder.cpp: case 'R' in ParseCommandLineOptions from AtomRemoval, also bugfix in RemoveAtoms(), rest from HEAD - molecules.cpp: Basically all from HEAD because of MultipleMolecules and ConstrainedMD commit 375b4589d3335eeefe2cda072f13207108281969 Author: Frederik Heber Date: Thu Jul 23 15:53:01 2009 +0200 fixed indentation from tabs to two spaces. commit d067d459977745a73acc480166336590b6ba19cf Merge: ce5ac38 4379223 Author: Frederik Heber Date: Thu Jul 23 14:34:47 2009 +0200 Merge branch 'MultipleMolecules' Conflicts: molecuilder/src/analyzer.cpp molecuilder/src/atom.cpp molecuilder/src/boundary.cpp molecuilder/src/boundary.hpp molecuilder/src/builder.cpp molecuilder/src/config.cpp molecuilder/src/datacreator.hpp molecuilder/src/helpers.cpp molecuilder/src/joiner.cpp molecuilder/src/moleculelist.cpp molecuilder/src/molecules.cpp molecuilder/src/molecules.hpp molecuilder/src/parser.cpp molecuilder/src/parser.hpp molecuilder/src/vector.cpp molecuilder/src/verbose.cpp merges: - analyzer.cpp: all from HEAD, Hessian stuff - atom.cpp: ostream & operator << (ostream &ost, const atom &a), 2nd param is const - boundary.cpp: DoSingleStepOutput, VRMLSUffix, HULLEPSILON, Get_center_of_sphere(), Find_next_suitable_point_via_Angle_of_Sphere() and all of tesselation stuff from MultipleMolecules; DoRaster3DOutput, ~BoundaryLineSet(), ~Tesselation() from HEAD; write_raster3d_file with some changes from MultipleMolecules - boundary.hpp: all from MultipleMolecules - builder.cpp: all in ParseCommandLineOptions() from MultipleMolecules - config.cpp: all from HEAD, is stuff from ThermoStat and ConstrainedMD - datacreator.hpp: all from HEAD, Hessian stuff - helpers.cpp: all from HEAD, ReAlloc() differed just by indentation - moleculelist.cpp: all from MultipleMolecules, has to do with introduced molecule centers - molecules.cpp: all from HEAD, was ConstrainedMD stuff - molecules.hpp: ConstrainedMD and VerletForceIntegration from HEAD, moleculelist stuff from MultipleMolecules - parser.cpp: all from HEAD, ColumnCounter is *ColumnCounter there - parser.hpp: all from HEAD - vector.cpp: completely from MultipleMolecules (more lines) - verbose.cpp: all from HEAD compilation fixes: - CheckPresenceOfTriangle() from MultipleMolecules - MoleculeListClass::ListOfMolecules has changed to STL list, hence use insert(), ReturnIndex() and MoleculeListClass::OutputConfigForListOfFragments - MoleculeListClass::OutputConfigForListOfFragments() had fragmentprefix instead of FRAGMENTPREFIX - parser.hpp: EnergyMatrix::ParseIndices() declaration was missing commit ce5ac38e73b73390de3143a6985456a9e35495f9 Author: Frederik Heber Date: Thu Jul 23 14:32:48 2009 +0200 Fix indentation from tabs to two spaces to prepare merging with MultipleMolecules commit 4379223d1ae805fff33d7d6aba7ff8281b0c4c45 Author: Frederik Heber Date: Thu Jul 23 14:14:13 2009 +0200 Fix indentation from tab to two spaces. The trouble was caused at the merge e08f45e4539ffcc30e039dec5606cf06b45ab6be. Seemingly, I thought eclipse had pulled some shit which i didn't commit 986c809f30e6539ae660442a47de63b08aa35574 Merge: 71e7c7b edcda57 Author: Frederik Heber Date: Thu Jul 23 13:46:57 2009 +0200 Merge branch 'ConstrainedMolecularDynamics' Conflicts: molecuilder/src/molecules.cpp - conflict was just regarding empty lines with some superfluous spaces commit 71e7c7b252e9a46447afd01de2aacaa1ea9c9f23 Merge: 631dcbf cc36a5e Author: Frederik Heber Date: Thu Jul 23 13:31:00 2009 +0200 Merge branch 'test' Conflicts: molecuilder/src/analyzer.cpp molecuilder/src/datacreator.cpp molecuilder/src/joiner.cpp all Chi.. matrices were EnergyMatrix instead of ForceMatrix, despite in all branches (test, master, Thermostat) always some ParseIndices was called for them, which is only implemented in the ForceMatrix. I change hence to ForceMatrix and removed the comments from ParseIndices(). But this is untested. commit 631dcbf45017adab57e255fe98ef0e91396de52a Merge: b38b64d fcbfc8b Author: Frederik Heber Date: Thu Jul 23 13:23:59 2009 +0200 Merge branch 'Thermostat' Conflicts: .gitignore Makefile.am molecuilder/src/analyzer.cpp molecuilder/src/builder.cpp molecuilder/src/config.cpp molecuilder/src/moleculelist.cpp molecuilder/src/molecules.cpp molecuilder/src/molecules.hpp - config::SaveMPQC() has different call parameters - analyzer and joiner had conflicts due to Chi and ChiPAS values - molecule::VerletForceIntegration() is slightly different too, but Thermostat supposedly is old version commit b38b64d7de64c60cbfaf51c1af8e8efd446a3fc4 Merge: b774160 72744aa Author: Frederik Heber Date: Thu Jul 23 11:14:18 2009 +0200 Merge branch 'HessianMatrix' commit b77416068cae737296792e6c91b7a28206524cad Merge: 2746be9 5621c30 Author: Frederik Heber Date: Thu Jul 23 11:11:01 2009 +0200 Merge branch 'GraphRefactoring' commit 205ccdc2e7f8e8fa2e39e323dc48d53c37819486 Author: Frederik Heber Date: Fri Jul 10 23:19:23 2009 +0200 BUGFIX: Due to stupid mistake, first atom was overlooked in periodic translation - molecule::TranslatePeriodically() is fixed (while is ptr != end) and next pointer moved to its end commit d1df9b520a18b7600eb18c25dc98b318ecd308be Author: Frederik Heber Date: Fri Jul 10 22:21:12 2009 +0200 new class ConfigFileBuffer and new overloaded function ParseForParaneter() based on this buffer - the problem is that we need to use molecuilder for the periodic translating of atoms in a xzy file. However, molecuilder resorts them per element. This destroty the id mapping needed for the DBOND file. The storing was corrected, but also the loading relies on this order. - To solve this, we have to pull off quite something: Parse file into buffer, resort the Ion_Type ones (via a map only), load atoms and then put them into the molecule in the original order! - Hence, in config::Load we also have a LinearList (map) in order to add the atoms after the scanning in their original order into the molecule. - class ConfigFileBuffer parses a config file line-wise into a buffer and allows for resorting (via a map) of lines containing key_word Ion_Type. - BUGFIX: molecule::Output...() were writing the wrong elements, as they were numbered during the output and not before in ascending order! (I.e. if the first atom is Si, but there is also H present, then this Si would become Ion_Type1_1 instead of Ion_Type2_1, because the elements are still sorted by their Z value, hence Ion_Type1 is H!) This is basically tested and seems to work properly commit 6cb412a55f11f6c6a632854832fd61aa21fb5d9e Author: Frederik Heber Date: Fri Jul 10 22:20:09 2009 +0200 BUGFIX: molecule::Output...() routines wrote elements beginning with 0 instead of 1 commit 5466f3c25c7264956c286b80f3090bf2e9b5b3d9 Author: Frederik Heber Date: Fri Jul 10 16:29:56 2009 +0200 XYZ and config files now store the atoms in the same order as they are loaded. changed functions: molecule::OutputXYZ, molecule::OutputTrajectoriesXYZ, molecule::OutputTrajectories, molecule::Output commit 21c0171a2ffa8aa89b2345abf037899c7dbedf2b Author: Frederik Heber Date: Fri Jul 10 14:48:05 2009 +0200 molecule::CenterInBox puts atoms now periodically into the given box, new function molecule::TranslatePeriodically, BUGFIX: molecule::ReturnFullMatrixforSymmetrical() - molecule::CenterInBox() has no more a vector as a parameter, but instead enforces the periodicity of the simulation box, i.e. all atoms out of bounds are put back in with wrap-around at boundaries. Call of function was changed in everywhere. - in ParseCommandLineParameters() a SetBoxDimension was missing in certain Center...() commands. - new function molecule::TranslatePeriodically translates all atoms of a molecule while adhering to the periodicity of the domain - new function vector::InverseMatrix() returns the hard-encoded inverse of 3x3 real matrix - BUGFIX: molecule::ReturnFullMatrixforSymmetrical()'s assignment from 6-doubles to 9-doubles was all wrong (symmetric to full 3x3 matrix) commit a37350a0f046102b06e1012072c9ab13e577825e Author: Frederik Heber Date: Thu Jul 9 15:33:39 2009 +0200 FIX: Now tries each of the axis direction to find a starting triangle - if BTS was not set, as no third point was found, output of NormalVector caused error. This is fixed. - also, we move in a loop over all three axis direction and try to create a starting triangle. - Therefore, the candidates in the list have to be free'd. This is done. commit 8cede77e6f14d315bdfa9e2e47998e048f3ef55d Author: Frederik Heber Date: Thu Jul 9 14:02:46 2009 +0200 Lots of changes to the number of output messages. As the finding of the non-convex boundary is done, we have cut down a lot on the output created by the procedure. Most of the INFO messages are commented out and all of the REJECTs and Current Candidates and so on as well. There still remains all that is necessary, triangles found, the sequence of accepted candidates, the number of baselines not connected to two triangles ... commit b65901918c60ce43a59e69765a1da56c67436693 Author: Frederik Heber Date: Thu Jul 9 13:40:14 2009 +0200 Fixed all of the remaining memory leaks due to CandidatesForTesselation list. - Opt_Candidates list in Find_next_suitable_triangle() and Find_starting_triangle() was not deleted - Also, all contained CandidatesForTesselation were not deleted - the candidates list was cleared in Find_third_point_for_Tesselation() but the contained CandidatesForTesselation were not deleted commit e72001c60c0aa5692845aefdcd2d22a3c7e152c4 Author: Frederik Heber Date: Thu Jul 9 13:38:33 2009 +0200 Memory leak fix: ParseCommandLineOptions() and main() free'd mol twice or not at all - ParseCommandLineOptions() free'd mol and periode on ExitFlag, however main() does this too - main() exited after ParseCommandLineOptions() returnted with 0 or 1, free'ing nothing. - Hence, ParseCommandLineOptions() does not delete, this is all done in main() - the return value of ParseCommandLineOptions is now checked in a switch statement with free's and return commit 989bf66a2aab6e121d0d2978cfd34b79079c47b4 Author: Frederik Heber Date: Thu Jul 9 12:59:00 2009 +0200 Changed the unsatisfactory PathToDatabases construct, removing warning deprecated conversion from string constant to char * - new variable config::databasepath (initialized in config constructor, released in destructor) - Store.../LoadPeriodentafel() now have to receive const char * - PathToDatabases is removed, instead LocalPath is copied into config::databasepath commit 1c6081a2e5edeea12712e25bd11eaf9624a4241e Author: Frederik Heber Date: Thu Jul 9 12:38:53 2009 +0200 fixed compiler warning: deprecated conversion from string const to char * by changed char* to const char* - "hello" represents a const char *. Hence, if we point a char* at it, it may subsequently be altered, which is not allowed due to its const nature. Hence, the warning. However, we do not change the strings anyway, hence changing to const char *. commit 70c333f9ab1c2e3d9503da478fc85da9ef13d97b Author: Frederik Heber Date: Thu Jul 9 12:36:26 2009 +0200 fixed compiler warning by changing int to size_t because C++ STL set.size() returns size_t. - changed in PickRandomPointSet...() (PointsPicked, PointsLeft, ...) - in boundary.cpp some unnecessary variables were removed also commit 4777e96cf6171cee29419dee0203241623e06954 Author: Frederik Heber Date: Thu Jul 9 12:31:05 2009 +0200 Removed unneeded variables commit 542ab38ee2a53fdfa6396058ef261b31db81ad26 Author: Frederik Heber Date: Thu Jul 9 12:22:05 2009 +0200 Removed unnecessary code - Choose_preferable_third_point() - already commented out Find_next_suitable_point() - Tesselation::Find_next_suitable_point_via_Angle_of_Sphere() commit 86234be7f2f4f7062c6ddf83c803a72d008d6945 Author: Frederik Heber Date: Thu Jul 9 11:45:00 2009 +0200 BUGFIX: Memory leak due to special triangles and similar lines in BoundaryPointSet::lines multimap, corrected some output messages, AddTriangleToLines()->AddTriangle() - BUGFIX: destructor of BoundaryLineSet erases in the BoundaryPointSet::lines _all_ lines with key endpoints[i]->Nr instead of just the one line we are just removing (note: due to degenerated triangles, there may be more than one line with the same endpoints, the key in LineMap however is just the endpoint number). Now, we do equal_range and check whether the line === this. - BoundaryPointSet::AddLine() has more sensible message, stating that line is added to a point not other wat round - some identation and automated line wraps fixed - AddTriangleToLines() renamed to AddTriangle(), as the triangle to line adding is done in the triangles constructor. Here, we just add the triangle to tesselation class' global list commit 018741f1886afdc512cdde2e7bb4e7e5d4f1e041 Author: Frederik Heber Date: Tue Jul 7 16:46:22 2009 +0200 FIX: CheckLineCriteriaforDegeneratedTriangle contains criteria when we may add a special (degenerated) triangle - new function CheckLineCriteriaforDegeneratedTriangle() that checks whether the special triangle closed at least two present edges and does not create two new edges for one being closed (which is the baseline), i.e. the total number of problems should remain the same or become smaller by degenerated triangles, never bigger - find_next_suitable_triangle() checks the above criteria when (existentTriangle == 1) and if false, does not add a triangle at all - some identing fixes commit f0ebacc6c34010940a9567bc730b83dea125e6cd Author: Frederik Heber Date: Tue Jul 7 11:12:54 2009 +0200 BUGFIX: Initial edge for starting triangle may be up to TWICE the sphere's radius Find_second_point_for_tesselation() - now checks norm of vector against 2.*RADIUS commit ce4d22efd2d08dc09d1edd1aca8cbb60d85f725d Author: Frederik Heber Date: Tue Jul 7 10:17:53 2009 +0200 BUGFIX: LinkedCell list had to created with 2.*RADIUS of sphere Some points were missed during the checking for the third point in tesselation due to the linked cell edge length being too small. We have to check TWICE the radius (i.e. the diameter) of the rolling sphere. NOTE: This was even suggested by a comment in that very line ... argh commit 02da9ef6bb440a647ec6bc6d878dc03b9bc6fc38 Author: Frederik Heber Date: Tue Jul 7 10:12:28 2009 +0200 BUGFIX: Numerical imprecision forced check of bounds for acos() Scalarproduct(a)/Norm()/a.Norm() may result in values larger than 1 and smaller than -1 due to numerical rounding errors. -1-MYEPSILON causes NaN to be returned by acos, hence we check whether the value is smaller than -1 or greater than 1 and set to the limit if out of bounds. This causes a wrong triangle to be taken due to the wrong SphereCenter being copied (comparing MYEPSILON to NAN) commit 260b2f24cb97da2d5497d1081b9cc5e5ef24df8f Author: Frederik Heber Date: Tue Jul 7 10:11:47 2009 +0200 Cosmetical changes in Find_third_point_for_tesselation() and FinDistributionOfEllipsoids commented out in builder. commit 3d919eedeaf6ca7f077bff3c3e38dad3bba53b8a Author: Frederik Heber Date: Tue Jul 7 08:49:32 2009 +0200 All of Saskia Metzler's changes so far to remove bugs from Tesselation (still not working) Principle ideas: - allow maximum of two triangles per triple of atomic indices to also tesselate "flat" areas - detect degeneracies by having a list of candidates and adding multiple triangles (one for each) by an angle criteria New functions: - existsIntersection(): Checks per distance minimiser whether two lines intersect (for intersecting triangles) - MinIntersectDistance(): Calculates the minimal distance between two lines (function to minimize) - sortCandidates(): Sorting function for the third point candidates - CheckPresenceOfTriangle(): For a triple of atomic indices, checks whether a triangle between them already exists (needed for allowing max of two triangles per triple) commit a5b2c3a1b29eef3d3e6b57dfbcea27b22ec153cc Author: Frederik Heber Date: Fri Jul 3 16:25:17 2009 +0200 Removing of atoms via command line possible -R switchs allows for the removal of single atoms -Left and Right Boundary are now called Upper and Lower Boundary which makes more sense commit c54da320524ce1dd5ac8a13de898eab17c38e6ee Author: Frederik Heber Date: Wed Jun 3 18:05:22 2009 +0200 BUGFIX: RemoveAtom() would remove the iterator, molecule::RemoveAtom() did not decrease AtomCount - used two pointer construction, so that the next pointer is already secured before removing the current from the list. - RemoveAtom() decreases AtomCount if Elements-array-check is ok commit 178f929674b15573151e8338cb756aaf0ecfd47c Author: Frederik Heber Date: Sat Apr 11 01:28:39 2009 +0200 return type of MoleculeListClass::insert is now void instead of bool (insertion into list always works) commit 09af1ba17d496cca5e8ee8701a907e869f208b3c Author: Frederik Heber Date: Sat Apr 11 01:28:02 2009 +0200 removed lots of warnings due to unused variables This arose due to the code-writes for multiple molecules. commit 63f06e549b4f5a9f18fc5ce0a5d858955003e9c4 Author: Frederik Heber Date: Wed Apr 8 13:35:42 2009 +0200 fixes due to changes in molecule structure (Center...()) and merge submenu is done. - CenterAtoms(): CenterOrigin() and CenterGravity/Periodic() now don't need vector as parameter anymore - ManipulateAtoms() & ManipulateMolecules(): check for number of ActiveFlag molecules was >0, should have been >1, also all ListRunner loops did non check whether the molecule to work on was actually set molecule::ActiveFlag true - EditMolecules(): title was non-caps, loading would use Center instead of center, loops asking for index of molecule would loop endlessly due to wrong break condition, remove did falsely use counter instead of molecule::IndexNr - MergeMolecules(): simple add, simple merge and multi-merge are implemented - SaveConfig(): Translation to true center before save was missing (and back-translation) and filename instead of ConfigFileName is used - ParseCommandLineOptions(): new molecule is not set to Active, fix due to ConfigFileName pointing nowhere when none given on command line (argv[1] NULL) - main(): ConfigFileName is now a char buffer not char pointer due to trouble with NULL filename, setting of actiive flag corrected (counter instead of IndexNr bug) commit d671506779336470085bef0cdbe37dd74c5aaecd Author: Frederik Heber Date: Wed Apr 8 13:27:50 2009 +0200 Lots of bugfixes, some name changes and new functions BUGFIX: - molecule::molecule did not initialise IndexNr and ActiveFlag - molecule::SetNameFromFilename() was missing terminal \0 at end of constructed name - molecule::CenterInBox() translates and zeros Center - molecule::CenterEdge() also zeros Center - molecule::CenterOrigin(): dropped parameter *center as molecule::Center is now used, translated and center then set to zero Changes: - molecule::CenterGravity() now is called CenterPeriodic() and just calls DeterminePeriodicCenter with molecule::Center as parameter - molecule::DetermineCenter() variable is now called center to stop confusion with molecule::Center - molecule::PrincipalAxisSystem() uses CenterAtVector with DetermineCenterOfGravity() - molecule::IsEqualToWithinThreshold() now uses molecule::DeterminePeriodicCenter() due to name change - molecule:SetNameFromFilename() now expects constant *filename New: - molecule:CenterAtVector() adds given vector to molecule::Center commit 3af1f0f25fa7a1adc1d089360422fda03a33eb7a Author: Frederik Heber Date: Wed Apr 8 13:25:03 2009 +0200 MoleculeListClass::Enumerate() lists center and size of molecule, fix of MoleculeListClass::ReturnIndex() - MoleculeListClass::Enumerate(): Vector Center and size (greatest distance from center) is also given - MoleculeListClass::ReturnIndex(): BUGFIX - counter instead of molecule::IndexNr was still used commit ca2587035117b37eb5f0dcff6065cf52caccc448 Author: Frederik Heber Date: Thu Apr 2 18:42:53 2009 +0200 Framework for embedding one molecule into another, now the embedding center finding is "only" missing commit ca3ccc44e15b3184201911d3686bddb8b917fc10 Author: Frederik Heber Date: Thu Apr 2 18:42:36 2009 +0200 simple switched order for edit molecule to be in alphabetical ordering commit 1907a789609146bbdebfeff09de44cb4ba21b808 Author: Frederik Heber Date: Thu Apr 2 18:12:54 2009 +0200 Basic implementation of Multiple molecules. builder.cpp: - MoleculeListClass *molecules instead of molecule *mol - in menu replaced list of elements and atoms by list of molecules - new option: SetActiveMolecule - new submenus/functions that all work on MoleculeListClass: * EditMolecule() * ManipulateMolecules() (global operations on all atoms in a molecule) * MergeMolecules() * ManipulateAtoms() (local operations on single atoms) - SaveConfig(): SimpleMultiAdd() of all molecules into a single new one that is stored with the present configuration. molecules.hpp: - new STL list MoleculeList - new variables in MoleculeListClass: list of molecules as STL list - new variables in molecule: ActiveFlag, name of molecule, Center of molecule (used on merging) moleculelist.cpp: - replaced listofmolecules array by STL list everywhere (only smaller changes necessary) - new merging function: SimpleMerge, SimpleAdd, SimpleMultiMerge, SimpleMultiAdd, (EmbedMerge, ScatterMerge ... both not finished). Add does not while merge does delete the src molecules. - new function: Enumerate(). Output of all molecules with number of atoms and chemical formula - new function: NumberOfActiveMolecules(). Counts the number of molecules in the list with ActiveFlag set. - new function: insert(). Inserts a molecule into the list with a unique index molecules.cpp: - new function: SetNameFromFilename. Takes basename of a filename and sets name accordingly. - new function: UnlinkAtom. Only removes atom from list, does not delete it from memory. atom.cpp: - Output() also accepts specific comment instead of "# molecule nr ..." commit d8b94a86944c4679c88bc250bff510f242d63309 Author: Frederik Heber Date: Tue Feb 10 13:04:37 2009 +0100 Gaussian basis for MPQC input files can now be specified with -B switch builder.cpp: -B in ParseCommandLineOptions molecules.hpp: configuration::basis added config.cpp: SaveMPQC() takes configuration::basis as name commit 2746be91f71f00d142e33c5f26e2666094ed13f2 Author: Frederik Heber Date: Mon Feb 9 23:17:38 2009 +0000 Basis for MPQC can now be specified via command line switch * -B is ParseCommandLineOptions added * configuration::basis added, set to 3-21G in constructor * used in configuration::SaveMPQC() commit 5bc4d02ef0f3a43607aa4ea1320b526552add482 Author: Frederik Heber Date: Mon Feb 9 23:16:19 2009 +0000 Chi integration had some copy&paste error commit 6ac7eeecbbe9724fc31880df564e84ba30311c54 Author: Frederik Heber Date: Mon Feb 9 15:55:37 2009 +0000 Merge branch 'ConcaveHull' of ../espack2 into ConcaveHull Conflicts: molecuilder/src/boundary.cpp molecuilder/src/boundary.hpp molecuilder/src/builder.cpp molecuilder/src/linkedcell.cpp molecuilder/src/linkedcell.hpp molecuilder/src/vector.cpp molecuilder/src/vector.hpp util/src/NanoCreator.c Basically, this resulted from a lot of conversions two from spaces to one tab, which is my standard indentation. The mess was caused by eclipse auto-indenting. And in espack2:ConcaveHull was the new stuff, so all from ConcaveHull was replaced in case of doubt. Additionally, vector had ofstream << operator instead ostream << ... commit a98603750c1b5ea8639c4f89919340c98b730445 Merge: 6742207 cc2ee58 Author: Frederik Heber Date: Mon Feb 9 14:18:13 2009 +0000 Merge ../espack3 commit 124df14536b3633bd16d55d7442e9d0695c204a3 Author: Frederik Heber Date: Fri Feb 6 09:48:09 2009 +0000 Find_non_convex_border(): calls CreateAdjacencyList() to fill bond list commit e1bc6830af4c7501528091f383832e414f3c59e4 Author: Frederik Heber Date: Fri Feb 6 09:44:15 2009 +0000 New file and class LinkedCell that contains the linked cell algorithms Linked Cell class with * max,min vectors, list of cells, number of cells per axis * n is temporary indices to access a specific cell * functions to get pointer to cell specified by vector or by atom and checking bounds commit cc2ee58b3a94582183e54721ea65863f8c843fd7 Author: Frederik Heber Date: Mon Dec 29 21:26:43 2008 +0000 Just a temporary commit commit 6d4a76f17e90d47b8304ea3d09b5f35183b9d3d2 Merge: 12298c6 23e09be Author: Frederik Heber Date: Mon Dec 29 13:29:21 2008 +0100 Merge branch 'ConcaveHull' of ssh://stud64dc-01/home/neuen/workspace/ESPACK into ConcaveHull Conflicts: molecuilder/src/boundary.cpp Fixed the incorporation of write_raster3d_file() ... commit 12298c6c425bd81e8eb06db20b3aca630c98b764 Author: Frederik Heber Date: Mon Dec 29 13:25:04 2008 +0100 Now we also produce Raster3D output files additionally to TecPlot ones ... commit 23e09be2d40210f0374711bf133d62f2e96f064f Author: Christian Neuen Date: Tue Dec 23 14:28:05 2008 +0100 fancy commit commit 02bfdee48bf20f43a0f4e7f6b4c779daa4163c92 Merge: 44fd957 196a5ac Author: Frederik Heber Date: Tue Dec 23 14:06:36 2008 +0100 Merge branch 'ConcaveHull' of ssh://stud64dc-01/home/neuen/workspace/ESPACK into ConcaveHull Conflicts: molecuilder/src/boundary.cpp + Merge is solved (was Christian's fault :) + find_non_convex_hull is checked and working on Heptan boundary commit 44fd957c290401f17701bb788d3d339733fe6b38 Author: Frederik Heber Date: Tue Dec 23 12:22:57 2008 +0100 Cleaned up all debugging output commit 196a5ac4e0597225fe1d79967a945d42ddfed2e6 Author: Christian Neuen Date: Tue Dec 23 12:21:29 2008 +0100 BallAngel enhanced, added new alternative direction for issues with right angles commit 7c6712a25ea23cdfa7e88b8f2293af4c65278eec Author: Christian Neuen Date: Fri Dec 19 17:21:11 2008 +0100 Switched choice process to Ball angle completely. Problem remains. Same position? commit e9fa06f36adaf7b5bf0b33b34e7ea747201e8bff Author: Christian Neuen Date: Thu Dec 18 18:21:34 2008 +0100 First change to Ball angle as criteria, however, change sucks. commit 10af0deb228f5e5b25d4fd0c600059654562e5c7 Author: Christian Neuen Date: Wed Dec 17 16:56:07 2008 +0100 Solved possible problem with Second quadrant overhaul commit e4ea462e4975fcf1debaf5bbf7e4ced6f9d55b4d Author: Christian Neuen Date: Tue Dec 16 19:39:28 2008 +0100 Tesselation starts to look good, minor discrepancies are still there and a segmentation fault. commit caf5d608169807a028a2cd63e1c2eb8962eaa347 Author: Christian Neuen Date: Thu Dec 11 16:23:01 2008 +0100 Atom indices are now correctly processed. commit f71497989750680f5dd0615f305121f4c4601d64 Author: Christian Neuen Date: Mon Dec 8 15:16:34 2008 +0100 Another update w.r.t. the Tesselation. Some signs switched, but atom indices might be misused. commit a8bcea6105d46c2f1e551ab69003f9d1cc03e44f Author: Christian Neuen Date: Thu Dec 4 16:15:00 2008 +0100 several changes, now output is created, quality unknown commit f683feb0f2b4232b7bc42f3893078413c798f659 Author: Christian Neuen Date: Wed Dec 3 15:18:10 2008 +0100 Parses a pdb and xyz file and decideds which atoms are in both and which have been ommitted. It remaps the indices of the atoms, so that the indices are without gap and applies this remapping to a dbond file, renaming the bonds and removing the bonds which do not appear any more. commit 69eb71ca95b6ddd8113c4c58130d3a649792ac26 Author: Christian Neuen Date: Wed Dec 3 15:12:05 2008 +0100 Multiple changes to boundary, currently not fully operational. Molecules has a new routine to create adjacency lists, reading bonds from a dbond file instead of looking for the distances by itself. Vector function Project onto plane has been updated. commit 1ffa216657b5beb85210757a5d292a8b64bd5b79 Author: Christian Neuen Date: Thu Nov 27 10:59:27 2008 +0100 The border.cpp contains the same functions as the changes in boundary, in case it is desired to have the convex and non convex routine seperated at a later time. commit 03648b9b7a0304a1d85f5faf7250acf9fcbbbe04 Author: Christian Neuen Date: Thu Nov 27 10:55:08 2008 +0100 In vector a function for calculation of the vector-(cross-)product has been added. In Boundary a new way for finding the non-convex boundary is implemented. Currently problem with comparison of the return value of the map::find routine. commit 51695cfc06f5f047e51d2313f7093855e00ab2cd Author: Christian Neuen Date: Tue Nov 25 16:05:07 2008 +0100 Construction of border triangles of non convex point set commit 72744aa9455778453eaeac1db101b313b5406e2a Author: Frederik Heber Date: Wed Oct 29 21:01:04 2008 -0400 Analyzer now produces data file with Frobenius norm of hessian matrix. commit 376f976dda971f927ed160c923994210d8d4df4e Author: Frederik Heber Date: Wed Oct 29 20:56:02 2008 -0400 Added some commentary to HessianMatrix::SumSubHessians to ease debugging commit 05d2b274f224b68850cb42c32e5c8dd92bb7e0e6 Author: Frederik Heber Date: Wed Oct 29 10:54:54 2008 -0400 Implemented Frobenius norm calculation for class HessianMatrix HessianMatrix::CreateDataDeltaFrobeniusOrderPerAtom() - New data creator that calculates the frobenius norm (with 1/N prefactor), to estimate the accuracy of the approximated HessianMatrix commit b12a3574887c67ef085de6c3928441bc590032f2 Author: Frederik Heber Date: Sun Oct 19 15:57:23 2008 +0200 HessianMatrix implemented fully, but not yet working, probably due to wrong matrix generation in script file (convertHessian.py) HessianMatrix::IsSymmetric was though to be needed, but is NOT. As we regard full matrices, we don't need to add onto mirrored indices as well Joiner and Analyzer have seen some small changes and bugfixes: NoHessian was not also always looked at when needed and so on commit 6742207a959f7641d50782ed06b4b4b943cf307d Author: Frederik Heber Date: Wed Oct 29 20:55:19 2008 -0400 Implemented analysis of magnetic susceptibilites. This is very similar to Sigma(PAS), however not with ForceMatrix class but with EnergyMatrix. This is still not finished and yet not working. However, it does not impact on other functions of joiner or analyzer. commit 5621c3089e979328ea79df91460a2be02964b1f7 Author: Frederik Heber Date: Wed Oct 29 20:59:40 2008 -0400 Begin of implementing classes Graph, SubGraph, Node and Edge. So far only initial class definitions, functions are all as of yet missing. commit cc36a5ec90e8d8af8be4e456d8d7c84711dea74d Author: Frederik Heber Date: Wed Oct 29 21:01:04 2008 -0400 Analyzer now produces data file with Frobenius norm of hessian matrix. commit 2e6e7aefe411005fa1086c244c878459f4f21c8c Author: Frederik Heber Date: Wed Oct 29 20:59:40 2008 -0400 Begin of implementing classes Graph, SubGraph, Node and Edge. So far only initial class definitions, functions are all as of yet missing. commit a8f53c4a62332111708d480361fdc08e8cf6a08b Author: Frederik Heber Date: Wed Oct 29 20:56:02 2008 -0400 Added some commentary to HessianMatrix::SumSubHessians to ease debugging commit 234af2e0631e6e266b8ee56b086bfbb87318d49c Author: Frederik Heber Date: Wed Oct 29 20:55:19 2008 -0400 Implemented analysis of magnetic susceptibilites. This is very similar to Sigma(PAS), however not with ForceMatrix class but with EnergyMatrix. This is still not finished and yet not working. However, it does not impact on other functions of joiner or analyzer. commit 84fc918b794641fe7de6f2483ddf1b33396f47cb Author: Frederik Heber Date: Wed Oct 29 10:54:54 2008 -0400 Implemented Frobenius norm calculation for class HessianMatrix HessianMatrix::CreateDataDeltaFrobeniusOrderPerAtom() - New data creator that calculates the frobenius norm (with 1/N prefactor), to estimate the accuracy of the approximated HessianMatrix commit eeec8fb96069e10986806be23efb05adf344d003 Author: Frederik Heber Date: Sun Oct 19 15:57:23 2008 +0200 HessianMatrix implemented fully, but not yet working, probably due to wrong matrix generation in script file (convertHessian.py) HessianMatrix::IsSymmetric was though to be needed, but is NOT. As we regard full matrices, we don't need to add onto mirrored indices as well Joiner and Analyzer have seen some small changes and bugfixes: NoHessian was not also always looked at when needed and so on commit f731aed8e27c7b0f1fcfad0872e0742f3403b3b8 Author: Frederik Heber Date: Sat Oct 18 17:05:54 2008 +0200 ColumnCounter -> *ColumnCounter columns of the MatrixContainer class may now be variable over each matrix. This was changed globally to allow for varying column numbers of the new class HessianMatrix. commit 85d278634d82c0d87206785b8cb85c4c6f794e06 Author: Frederik Heber Date: Sat Oct 18 16:06:51 2008 +0200 Introduced new class HessianMatrix derived from MatrixContainer, which shall contain the hessians calculated by mpqc. commit 450d63e3aecf24a3631d6e9db7a79102c715e4e8 Author: Frederik Heber Date: Sat Oct 18 16:03:57 2008 +0200 VolumeOfConvexEnvelope() has new parameter with tecplot ofstream and the file is stored there and not in Tesselation::Tesselation(). + BUGFIX: As we shift the molecule to the center of gravity for the "projection onto axis planes" method to work, we forgot about shifting it back before storing nodes and triangles in the tecplot file. Now, we store the data to file in VolumeOfConvexEnvelope(), where the molecule has been shifted back already. + VolumeOfConvexEnvelope() now gets an additional parameter with the tecplot ofstream, so that the name of the tecplot file may be chosen on the command line (with checks whether the argument was given or not) commit 65de9b134a90f9d37ee598221141c6e8391b0087 Author: Frederik Heber Date: Fri Oct 17 15:24:10 2008 +0200 molecule::PickLocalBackEdges(): BUGFIX: if Walker as not in subgraph, next candidate wasn't popped from stack due to wrong brackets of if clause. This caused to loop to run indefinitely (hence, the new output messages for the functions in molecule::FragmentMolecule(). It is fixed. commit 4ee3df7d3ad5f7f9db4c737e70f26a1b547347c0 Author: Frederik Heber Date: Fri Oct 17 15:22:38 2008 +0200 Analyzer now writes usable plot and data files for shielding comparison (both relative (Delta...) and absolute). We were able to use the ForceMatrix functions in a very straight-forward and simple manner (excellent programming if I may so :) commit 9a5bcd1b9e1cb7f3d50def75223622b926786d75 Author: Frederik Heber Date: Fri Oct 17 15:20:42 2008 +0200 config::Save() and config::SaveMPQC() now take string for filename, instead of opened ofstream. This was necessary, as config::SaveMPQC() now writes to files: One with hessian calc enabled, the other not. As it is a pendant of config::Save(), this file was changed accordingly. Both are called from builder.cpp (ParseFromParamters() and main()) and moleculelist.cpp (MoleculeListClass::OutputConfigForListOfFragments()), hence these were changed,too. commit f006938f9e251ee5d77f964af5728fd0a645c59c Author: Frederik Heber Date: Thu Oct 16 11:27:59 2008 +0200 New tests that check that if subsequent arguments to certain cmd options are missing, it is admonished. commit a8b9d61068f3f5cf8e1a42240f2a3128874cc073 Author: Frederik Heber Date: Thu Oct 16 11:27:17 2008 +0200 ParseCommandLineOptions(): All cases now make thorough checks verifying the correct number of subsequent arguments. commit 52f5d5d2312e073ff5dc9a8561eacdf21c0b84b9 Author: Frederik Heber Date: Thu Oct 16 11:26:48 2008 +0200 periodentafel::LoadPeriodentafel(): if other dbs fail, we just give a warning, not an error commit e198c7eb5987f3ecfab54dfbc1690375e23f1bd3 Author: Frederik Heber Date: Thu Oct 16 11:25:56 2008 +0200 New function IsValidNumber(): checks whether a command line argument os truely a valid number This is needed for the following commits where each command line arguments makes thorough checks to the number of its subsequent arguments. commit 95634fe5ab2efbd4217ef8f96a50a6428f673e4c Author: Frederik Heber Date: Wed Oct 15 20:20:51 2008 +0200 Analyzer now prints usable ShieldingsPAS data and plot files (so that comparison per order is possible). commit 19f3d6b52d8fb15fc152deeadf2d12f72fbe27c4 Author: Frederik Heber Date: Wed Oct 15 20:20:40 2008 +0200 new function AppendOutputFile() for appending to output files whereas with OpenOutputFile the contents is deleted. commit 57d8b005ecc147724ea9b83a7772e74c015cff14 Author: Frederik Heber Date: Wed Oct 15 19:16:43 2008 +0200 molecule::VerletForceIntegration() different code, same algorithm (still bug-hunting) commit 2b4a4087bfef04889a36e1b91688f2a56bea8e3a Author: Frederik Heber Date: Tue Oct 14 21:14:10 2008 +0200 new version of Tesselation::GuessStartingTriangle() seems to fix problems + now, we find the starting triangle in the following manner (point = boundary point!): 1. pick a point A 2. for all unequal pairs B,C (not A), calculate AB^2+BC^2+AC^2 and sort into ascending list 3. Go through list, picking thus baseline B,C along with peak A of a candidate triangle 4. check whether all other boundary points lie only on one side 5. check whether no boundary point is inside the triangle 6. If all successful, starting triangle is found With this procedure, the convex hull of all SiOHCa3 clusters are found perfectly. commit ca8073901157e1302ad5c69a06c379e27ec66590 Author: Frederik Heber Date: Tue Oct 14 15:26:02 2008 +0200 BUGFIX: Tesselation::AddPoint() always increased Tesselation::PointsOnBoundaryCount, even if point was present already + we look at PointTestPair->second to determine whether point was present before or not, and only increase Tesselation::PointsOnBoundaryCount if true commit ec7ba80eb21e003af9ec7acd755302049e63733c Author: Frederik Heber Date: Sun Oct 12 17:58:48 2008 +0200 changed basis set for mpqc from STO-3G to 3-21G (more stable with Calcium) in config::SaveMPQC() commit 9fc556ca6d0481c3e2398c3287b232e83726a913 Author: Frederik Heber Date: Sat Oct 11 18:07:45 2008 +0200 corrected number of valence orbitals for Calcium (2 -> 4) and inserted typical bond distance and angle (first taken from bpti, second guessed) commit 74a65e7a553d4ba98e039de2f94a19ac6ed2499a Author: Frederik Heber Date: Sat Oct 11 18:07:28 2008 +0200 molecule::AddHydrogenReplacementAtom() returns false on missing parameters, molecule::FragmentMolecule() less output molecule::AddHydrogenReplacementAtom(): Gave only a warning when either typical hydrogen bond length or angle was missing, now the adding stops, error instead of warning message and false is returned instead. molecule::BreadthFirstSearchAdd() exits, when AddHydrogenReplacementAtom() returns false molecule::StoreFragmentFromKeySet() exits, when AddHydrogenReplacementAtom() returns false commit edcda57bf8ce399e8a4ee61cc3d8dfe3762ec753 Author: Frederik Heber Date: Fri Oct 10 15:36:06 2008 +0200 BUGFIX: AssignKeySetsToFragment() had FragmentCounter-- at wrong place + MoleculeLeafClass::AssignKeySetsToFragment(): FragmentCounter was decreased even when no keyset had been scanned, setting it to -1, bad for the subsequent free. It has to be decreased again right after the recursive call. Begin and end messages added. Free checks for FreeList=true and ListOfLocalAtoms != NULL (safety measure). + MoleculeLeafClass::FillBondStructureFromReference(): No BUG here (no keyset check to prevent increase for subsequent decrease), but same changes commit 4158ba5fa97fe796922357bc902acc0a69d050d3 Author: Frederik Heber Date: Fri Oct 10 15:32:33 2008 +0200 BUGFIX: molecule::CreateAdjacencyList() used CandidateBondNo in output even if no candidate had been found + If no Candidate has been found, output message would declare to be unable to correct bond degree for a unspecified bond (CandidateBondNo set to no sensible value) commit 617b53ac1a332edd19665484e05e0e071fb68d49 Author: Frederik Heber Date: Fri Oct 10 15:36:06 2008 +0200 BUGFIX: AssignKeySetsToFragment() had FragmentCounter-- at wrong place + MoleculeLeafClass::AssignKeySetsToFragment(): FragmentCounter was decreased even when no keyset had been scanned, setting it to -1, bad for the subsequent free. It has to be decreased again right after the recursive call. Begin and end messages added. Free checks for FreeList=true and ListOfLocalAtoms != NULL (safety measure). + MoleculeLeafClass::FillBondStructureFromReference(): No BUG here (no keyset check to prevent increase for subsequent decrease), but same changes commit 1e82436670bbdab8a2f2c4c9e9b6b176e529aac8 Author: Frederik Heber Date: Fri Oct 10 15:32:33 2008 +0200 BUGFIX: molecule::CreateAdjacencyList() used CandidateBondNo in output even if no candidate had been found + If no Candidate has been found, output message would declare to be unable to correct bond degree for a unspecified bond (CandidateBondNo set to no sensible value) commit fcbfc8b407a7facce5cce4b025c250e1413426b7 Author: Frederik Heber Date: Fri Oct 10 15:36:06 2008 +0200 BUGFIX: AssignKeySetsToFragment() had FragmentCounter-- at wrong place + MoleculeLeafClass::AssignKeySetsToFragment(): FragmentCounter was decreased even when no keyset had been scanned, setting it to -1, bad for the subsequent free. It has to be decreased again right after the recursive call. Begin and end messages added. Free checks for FreeList=true and ListOfLocalAtoms != NULL (safety measure). + MoleculeLeafClass::FillBondStructureFromReference(): No BUG here (no keyset check to prevent increase for subsequent decrease), but same changes commit ad85c2203339834fa6ac518acaf5aaa2efb1b02d Author: Frederik Heber Date: Fri Oct 10 15:32:33 2008 +0200 BUGFIX: molecule::CreateAdjacencyList() used CandidateBondNo in output even if no candidate had been found + If no Candidate has been found, output message would declare to be unable to correct bond degree for a unspecified bond (CandidateBondNo set to no sensible value) commit 41f151252894d0d3731a46b364f36e7364983553 Author: Frederik Heber Date: Thu Oct 9 20:27:56 2008 +0200 BUGFIXES: CyclicStructureAnalysis() now compatible to disconnected subgraphs, AssignKeySetsToFragment() and FillBondStructureFromReference() memory cleanup corrected + molecule::DepthFirstSearchAnalysis() now just returns BackEdgeStack, not MinimumRingSize. CyclicStructureAnalysis() is called during FragmentMolecule(), after subgraphs bonds list have been filled by FillBondStructureFromReference(). + new function molecule::PickLocalBackEdges(), as the BackEdgeStack returned by DepthFirstSearchAnalysis() co ntains only global bonds, not the local ones for the subgraph, we have to step through it and pick the right ones out. + molecule::FragmentMolecule() now calls molecule::CyclicStructureAnalysis() separately for each subgraph, along with a BackEdgeStack filled by PickLocalBackEdges(), and allocates&initialises MinimumRingSize array. Als o AssignKeySetsToFragment() frees the LocalListOfAtoms now (FreeList=true), now longer after the following wh ile + molecule::CyclicStructureAnalysis() takes a local BackEdgeStack and analysis the subgraphs cycles, returnin g minimum ring size + MoleculeLeafClass::AssignKeySetsToFragment() now frees memory for ListOfLocalAtoms when FreeList is set. BUGFIX: test of first key was testing against ..->nr != -1. However, LocalListOfAtoms was not even initialised correctly to NULL, hence ...->nr pointed in some cases to nowhere. Now it test atom* against NULL. + MoleculeLeafClass::FillBondStructureFromReference() now frees memory for ListOfLocalAtoms when FreeList is set correctly (only free initial pointer when FragmentCounter == 0, also it was decreased not before but after freeing, hence we free'd the wrong list). Also, father replaced by GetTrueFather() (makes the function moregenerally useable, was not a bug). + ParseCommandLineOptions() option 'D': adapted to changes in DepthFirstSearchAnalysis() in a similar manner to FragmentMolecule() + molecule::CountCyclicBonds() adapted but does not perform CyclicStructureAnalysis() + molecule::CreateAdjacencyList() counts the bonds that could not be brought to covalently corrected degree (i.e. the remaining ionic atoms) + molecule::CreateListOfBondsPerAtom() prints atom names and number, which is helpful as name contains global and number contains local number (helped in finding above bugs) + CreateFatherLookupTable(): BUGFIX: LookupTable was not initialised to NULL (see above) commit 3ccc3e7a14502461795e5eacfd890ff9d7202edb Author: Frederik Heber Date: Thu Oct 9 20:27:56 2008 +0200 BUGFIXES: CyclicStructureAnalysis() now compatible to disconnected subgraphs, AssignKeySetsToFragment() and FillBondStructureFromReference() memory cleanup corrected + molecule::DepthFirstSearchAnalysis() now just returns BackEdgeStack, not MinimumRingSize. CyclicStructureAnalysis() is called during FragmentMolecule(), after subgraphs bonds list have been filled by FillBondStructureFromReference(). + new function molecule::PickLocalBackEdges(), as the BackEdgeStack returned by DepthFirstSearchAnalysis() co ntains only global bonds, not the local ones for the subgraph, we have to step through it and pick the right ones out. + molecule::FragmentMolecule() now calls molecule::CyclicStructureAnalysis() separately for each subgraph, along with a BackEdgeStack filled by PickLocalBackEdges(), and allocates&initialises MinimumRingSize array. Als o AssignKeySetsToFragment() frees the LocalListOfAtoms now (FreeList=true), now longer after the following wh ile + molecule::CyclicStructureAnalysis() takes a local BackEdgeStack and analysis the subgraphs cycles, returnin g minimum ring size + MoleculeLeafClass::AssignKeySetsToFragment() now frees memory for ListOfLocalAtoms when FreeList is set. BUGFIX: test of first key was testing against ..->nr != -1. However, LocalListOfAtoms was not even initialised correctly to NULL, hence ...->nr pointed in some cases to nowhere. Now it test atom* against NULL. + MoleculeLeafClass::FillBondStructureFromReference() now frees memory for ListOfLocalAtoms when FreeList is set correctly (only free initial pointer when FragmentCounter == 0, also it was decreased not before but after freeing, hence we free'd the wrong list). Also, father replaced by GetTrueFather() (makes the function moregenerally useable, was not a bug). + ParseCommandLineOptions() option 'D': adapted to changes in DepthFirstSearchAnalysis() in a similar manner to FragmentMolecule() + molecule::CountCyclicBonds() adapted but does not perform CyclicStructureAnalysis() + molecule::CreateAdjacencyList() counts the bonds that could not be brought to covalently corrected degree (i.e. the remaining ionic atoms) + molecule::CreateListOfBondsPerAtom() prints atom names and number, which is helpful as name contains global and number contains local number (helped in finding above bugs) + CreateFatherLookupTable(): BUGFIX: LookupTable was not initialised to NULL (see above) commit df793af37622fc6e5428ad9e5627590d46749e75 Author: Frederik Heber Date: Thu Oct 9 20:27:56 2008 +0200 BUGFIXES: CyclicStructureAnalysis() now compatible to disconnected subgraphs, AssignKeySetsToFragment() and FillBondStructureFromReference() memory cleanup corrected + molecule::DepthFirstSearchAnalysis() now just returns BackEdgeStack, not MinimumRingSize. CyclicStructureAnalysis() is called during FragmentMolecule(), after subgraphs bonds list have been filled by FillBondStructureFromReference(). + new function molecule::PickLocalBackEdges(), as the BackEdgeStack returned by DepthFirstSearchAnalysis() co ntains only global bonds, not the local ones for the subgraph, we have to step through it and pick the right ones out. + molecule::FragmentMolecule() now calls molecule::CyclicStructureAnalysis() separately for each subgraph, along with a BackEdgeStack filled by PickLocalBackEdges(), and allocates&initialises MinimumRingSize array. Als o AssignKeySetsToFragment() frees the LocalListOfAtoms now (FreeList=true), now longer after the following wh ile + molecule::CyclicStructureAnalysis() takes a local BackEdgeStack and analysis the subgraphs cycles, returnin g minimum ring size + MoleculeLeafClass::AssignKeySetsToFragment() now frees memory for ListOfLocalAtoms when FreeList is set. BUGFIX: test of first key was testing against ..->nr != -1. However, LocalListOfAtoms was not even initialised correctly to NULL, hence ...->nr pointed in some cases to nowhere. Now it test atom* against NULL. + MoleculeLeafClass::FillBondStructureFromReference() now frees memory for ListOfLocalAtoms when FreeList is set correctly (only free initial pointer when FragmentCounter == 0, also it was decreased not before but after freeing, hence we free'd the wrong list). Also, father replaced by GetTrueFather() (makes the function moregenerally useable, was not a bug). + ParseCommandLineOptions() option 'D': adapted to changes in DepthFirstSearchAnalysis() in a similar manner to FragmentMolecule() + molecule::CountCyclicBonds() adapted but does not perform CyclicStructureAnalysis() + molecule::CreateAdjacencyList() counts the bonds that could not be brought to covalently corrected degree (i.e. the remaining ionic atoms) + molecule::CreateListOfBondsPerAtom() prints atom names and number, which is helpful as name contains global and number contains local number (helped in finding above bugs) + CreateFatherLookupTable(): BUGFIX: LookupTable was not initialised to NULL (see above) commit ba4432331924fc02b7f5a1f24643fb79bc770fb4 Author: Frederik Heber Date: Thu Oct 9 18:19:39 2008 +0200 Output of atom and bond to stream now is set to const bond/atom commit aa57027f3fede3beb1cfc17ee62c74fd56535dae Author: Frederik Heber Date: Sun Sep 28 19:55:04 2008 +0200 corrected molecule::VerletForceIntegration() and analyzer creates data and plot file for shielding values commit 62f793aff2f24a09fa44578b18eca5a99c739605 Author: Frederik Heber Date: Thu Sep 25 19:57:19 2008 +0200 thermostats enumerator, necessary variables included in class config, molecule::Thermostats() and ..::Constrained Potential() Thermostat header definitions implemented. Can be parsed from the ESPACK config file into class config ConstrainedPotential() calculates the transformation between two given configurations my minimsing a penalty func tional of the distance to travel per atom. This was implemented due to Michael Griebel's talk during the MultiMat Closing meeting in order to produce some visuals. It basically mimics a "Bain Transformation". But it is not yet perfectly implemented. Also, MD was corrected in VerletIntegration(). However, forces are still wrong with mpqc, as the kinetic energy increases dramatically during the MD simulation. commit 16a52b3c50fff2ccc678808e2588e1174646b8ec Author: Frederik Heber Date: Thu Sep 25 19:51:37 2008 +0200 Lots of conversion factors for various units Were taken from PCP defs.h commit 7ce307c78745a2122b212146fe5353c2ac465fa6 Author: Frederik Heber Date: Thu Sep 25 19:50:17 2008 +0200 Some files were missing in the repository pseudopotentials and the databases of molecuilder were not present, they are now included as EXTRA_DIST in the Makefile.am commit 795a543aef7113a3c669a306acef3425d65f403d Author: Frederik Heber Date: Thu Sep 11 15:04:01 2008 +0200 molecule::MinimiseConstrainedPotential(): Extension of search and bugfix We set the DistanceIterator to the begin() of DistanceList if we have reached the end, i.e. start anew for searching possible candidates. Trajectories were not written correctly, due to wrong if condition (step> MDSteps) instead of (steps < MaxStep) commit c30cda6abbb8ffa286b09e6111634efbf42891a6 Author: Frederik Heber Date: Tue Sep 9 18:42:29 2008 +0200 molecule::MinimiseConstrainedPotential() : Minimisation is fixed Now, minimisation works. The re-occurence of doubles despite pair-wise exchanging during argument minimisation was due to a wrong DistanceIterator list setting in the injective minimisation before. Also, we enhanced the minimisation finding (though it is not optimal yet!) by going through each possible target in the distance list from the very beginning (i.e. we also take again smaller distances into account). For control purpose PrintPermutationMap also checks on the number of doubles (i.e. target's that are owned by two sources). commit 85bac07a96bad99841916279c5887226effb9305 Author: Frederik Heber Date: Tue Sep 9 17:29:58 2008 +0200 Implemented molecule::LinearInterpolationBetweenConfiguration(). command line option "-L" with start and end step performs a linear interpolation between two atomic configurations. So far the mapping from initial atom labels to final labels is not yet finished, it is injective, but not yet minimal. commit a1fe77b80222d4b06bce07cbd04191ac9a489a93 Author: Frederik Heber Date: Fri Sep 5 18:56:31 2008 +0200 Basic implementation of Constrained MD is done, missing testing. commit 6e93532a2d845fe2e2784e97e1a0882bd15affda Author: Frederik Heber Date: Fri Sep 5 10:22:51 2008 +0200 Constrained Molecular Dynamics: two new functions molecule::ConstrainedPotential(), molecule::MinimiseConstrainedPotential() Constrained Molecular Dynamics scaffold implemented (so far it does nothing): - config::DoConstrainedMD contains the target step (i.e. config::DoConstrainedMD = 2 will do a constraint motion from step 1 to step 2), 0 means no constrained motion, is parsed in config::load(), def ault is 0 - molecule::ConstrainedPotential() contains the constrained potential with three terms: distance, tr ajectory distance, equal target (last two are pure penalties). Implemented, not tested. - molecule::MinimiseConstrainedPotential() is a scaffold, not changing forces and returning null - molecule::VerletForceIntegration calls the above with the Force Matrix and target step as function parameters commit 18913c2ca930123026243027483a5e8569fd7118 Author: Frederik Heber Date: Thu Sep 11 15:25:47 2008 +0200 config::DoWannier implemented that is parsed from config file, default is 0 commit 4f23357f638834520f1ad76131c93dac4640b347 Author: Frederik Heber Date: Thu Sep 11 15:02:14 2008 +0200 ParseCommandLineOptions(): Command line option "-E" for changing an atom's element, BUGFIX: argptr could become >argc commit 2985c869920de1734bc16aa5227840ff9c56b82a Author: Frederik Heber Date: Tue Sep 9 17:32:16 2008 +0200 BUGFIX: Normalize() would try to normalize a zero vector which ended NaN. We only normalize if vector is non-zero in magnitude. commit 698b04044c25e6ea14765313bdc85be65fdffb0a Author: Frederik Heber Date: Tue Sep 9 10:37:07 2008 +0200 new function: molecule::OutputTemperatureFromTrajectories() stores velocities as temperature In order to use VibrAlyzer we need a temperature file, which we don't have anymore as we do the M D in molecuilder now. Hence, there is a new command line switch (-L) and a menu item in MeasureAt oms() in order to print temperature or to store it to a given file. commit bd3e5550ecf9aca4526efb079a96f370a9a477eb Author: Frederik Heber Date: Tue Sep 9 09:46:15 2008 +0200 configure BUGFIX: GSL may be linked against cblas_... functions or just ..., this is fixed. Before we checked for cblas_dnrm2. However, e.g. libgoto names it simply dnrm2. Hence, the blas functions are not found or slower (c)blas, or gsl(c)blas is used. Now, we simply check for dnrm2 functions in the list of libs first, if it fails, then for cblas_dnrm2. And finally, we test GSL functionality by checking for main(), which only works if a working blas lib has been found before. Also, we removed AC_MSG_NOTICE about CFLAGS and others. However, the other for MPICC was left present. commit deac6c2ee61a86d3a46c6eccc2756bd2c242c638 Author: Frederik Heber Date: Sat Sep 6 18:21:31 2008 +0200 BUGFIX: molecule::...Scale(),Translate(),Mirror() and Align() did only change vectors of atom struct, not in the Trajectories structure. RemoveAtom did not remove trajectories entry This is fixed. Also, fixed that RemoveAtom() did not remove the entry in Trajectories structure. commit a6b7fb65396523f30f3be7cb1c8c8dfaaf680d1a Author: Frederik Heber Date: Sat Sep 6 17:08:32 2008 +0200 BUGFIX: config::SaveMPQC() used molecule::DetermineCenter() which relies on the created bond structure, causing segfault. When storing a newly created configuration file, the bond structure needs not be present yet. Hence, we created the function molecule:DetermineCenterOfAll(), similar to molecule::DetermineCenterOfGravity() just without scaling by masses. This new function is now used instead. commit d1fc7f6c252281b36280161c5061d0e730662c24 Author: Frederik Heber Date: Sat Sep 6 17:06:51 2008 +0200 BUGFIX: Moved case 'a' in ParseCommandLineOptions() to the config_present == empty option switch. If atoms were added to an newly-created and empty configuration file, this would not work, as the config file was still empty and hence config_present != present, so far needed for case 'a'. Now, it is moved in the vicinity of case 'P', where it belongs to and if the first atom is added, config_present is set to present. commit a8aadf6291f42c04cb057454fa0a010c23184d00 Author: Frederik Heber Date: Fri Sep 5 19:09:39 2008 +0200 SaveConfig() now also stores an MPQC input file. MoleculeListClass::OutputConfigForListOfFragments() did this already, but it was missing for SaveConfig(). We do the same regarding filenames and output, only we call config::SaveMPQC(). commit ed060ec87e8e74bee52410a6471d3c0f47149edd Author: Frederik Heber Date: Fri Sep 5 19:02:18 2008 +0200 moved all definitions from boundary.hpp to molecules.hpp, and renamed DistanceNrPair to DistancePair. commit 7e27e738a38b76dacb4576347f33afc94b7933dc Author: Frederik Heber Date: Wed Sep 3 19:28:31 2008 +0200 BUGFIX: config::load() parses endlessly if there are no atoms in the config file. Since MaxTypes is 0, we check for it and don't scan if there are none according to it. If MaxTypes != 0 however there are no ions given, we break with an error message (which was missing before in config:ParseForParameters()). commit dd8cf8a8462703ebe06c909e9115df444b75404d Author: Frederik Heber Date: Tue Sep 2 14:06:14 2008 +0200 FIX: ExitFlag not defaults to 0, and set specifically to 1 in the subcases In ParseCommandLineOptions() the ExitFlag was always set to 1, even if only the elements databases were given on the command line. This lead to exit of program, when none was desired. commit 7e07cfbaccb8721446cd98910c37724dcc61f432 Author: Frederik Heber Date: Tue Sep 2 14:05:31 2008 +0200 fix: in config::edit() the loop asking for cell values had the wrong order sigh from the dumb optimization... commit 3dcd149e7e9a272112b92ca2b13b0ad8200eb6d2 Author: Frederik Heber Date: Fri Aug 29 12:39:59 2008 +0200 molecule::ScanForPeriodicCorrection() two printfs were commented out commit c1fc22aaa072e01ad3e6939465d7f8bb9d033b13 Author: Frederik Heber Date: Fri Aug 29 12:39:17 2008 +0200 config::SaveMPQC() included in headers and used in OutputConfigForListOfFragments() and cleaned up the path&filename creation commit 6b8b57c269257f8192eb7f11ffd114cf48339f05 Author: Frederik Heber Date: Fri Aug 29 12:12:00 2008 +0200 new function SaveMPQC(), bugfixes in ParseForParameter() ParseForParameter(): first while loop tested dummy[0] although it might occur that dummy = NULL, this is now checked beforehand. On stepping through the values in the keyword line, the end marker (dummy) was shifted to the start of the next value, hence included the tabs. This lead to strings being stored with tabs at the end and on consecutive loading&storing in an MD run to an accumulation of tabs till MD step 152, where the config file could not be parsed anymore due to the size of the string value. This is fixed (the shifthing further is removed, as unnecessary). SaveMPQC(): molecuilder now stores input files for MPQC directly, i.e. they don't have to be converted from the ESPACK format externally. This saves a lot of time during BOSSANOVA MD. commit ab3a0e355a8ec6c4f7f4b9c7c65b2931c2d58151 Author: Frederik Heber Date: Mon Aug 18 12:55:30 2008 +0200 Fixed second test (main_pcp_linux was not written anymore, hence copied) and error code in third test (2 not 0) commit 19892d8d4b3e7063877efba20bee402e3caa3695 Author: Frederik Heber Date: Mon Aug 18 11:02:34 2008 +0200 tiny comments and docu update for FragmentMolecule() commit 362b0e5abaff6113ef0ca4989b9074448eccb8b8 Author: Frederik Heber Date: Mon Aug 18 10:57:58 2008 +0200 Adaptivity fixes, MD by VerletForceIntegration introduced, MD molecule::Trajectories, atom Max::Order, no more recursive going down the fragmentation level MD == molecule::Trajectories is now a map to a struct trajectory list of all the MD steps. struct Trajectory contains STL vectors of coordinates, velocities and forces. Both are needed for the new VerletForceIntegration. Parsing of coordinates, velocities and forces from the config file was completely rewritten: - in the FastParsing case, we just scan for IonType1_1 to find the last step, set the file pointer there and scan all remaining ones - in the other case, we create the atoms in the first step and put them in a hash for lookup on later steps and read in sequentially (with file pointer moving on). - This is a lot faster than the old variant. VerletForceIntegration() implemented in a working manner with force smoothing (mean of actual and last one). OutputTrajectoriesXYZ() now concatenates the single MD steps into one xyz file, so that the animation can be viewed with e.g. jmol or vmd config:Deltat is now public (lazy me) and set to 1 instead of 0 initially, also Deltat is parsed accordingly (if not present, defaults to 1) MatrixContainer::ParseMatrix from parser.cpp is used during VerletForceIntegration() to parse the forces file. Consequently, we have included parser.* in the Makefile.am. Fix: MoleculeListClass::OutputConfigForListOfFragments() stores config file under config::configpath, before it backup'd the path twice to PathBackup. Adaptivity ========== Adaptivity (CheckOrderAtSite()) had compared not absolute, but real values which caused sign problems and faulty behaviour. Adapatvity (CheckOrderAtSite()) had included atoms by Order (desired one) not by FragOrder (current one) into the list of candidates, which caused faulty behaviour. CheckOrderAtSite() did single stepping wrong as the mask bit (last in AtomMask) was checked for true not false! Also bit was not set to false initially in FragmentMolecule(). Adaptivity: FragmentMolecule now returns 1 - continue, 2 - don't ... to tell whether we still have to continue with the adaptive cycle (is given as return value from molecuilder) introduced atom::MaxOrder StoreOrderAtSiteFile() now also stores the MaxOrder and ParseOrderAtSiteFromFile() parses it back into atom class Removed Fragmentation Recursion =============================== As we switched in the prelude of the adaptivity to a monotonous increase from order 1 to the desired one, we don't need to recursively go down each level from a given current bond order, as all these fragments have already been created on the lower orders. Consequently, FragmentBOSSANOVA does not contain NumLevels or alike anymore. This simplified the code a bit, but probably is not yet completely done. (but is working, checked on heptan). SPFragmentGenerator() does not need Labels anymore, global ones are used for checks. Consequently, PowerSetGenerator() and FragmentSearch structure don't initialise/contain them anymore. We always compare against ...->GetTrueFather()->nr. commit f054074bc0e2ebd43408e39a6e2ae0cd96597630 Author: Frederik Heber Date: Mon Aug 18 10:35:40 2008 +0200 analyzer has been adapted to the aforementioned change in the calling scheme. commit 8f019c37319f5387da730449c13ecaf090715119 Author: Frederik Heber Date: Mon Aug 18 10:35:11 2008 +0200 Splitting MatrrixContainer::ParseMatrix in ParseMatrix ParseMatrix just parses only a given matrix into a given part of the MatrixContainer::matrix array). ParseFragmentMatrix calls ParseMatrix for a sequence of numbered files containing the matrices. ForceMatrix::ParseFragmentMatrix overrides the routine from MatrixContainer in order to handle the parsing of the last and one ma trix in a special way EnergyMatrix::ParseFragmentMatrix overrides the routine from MatrixContainer in order to handle the parsing of the last and one matrix in a special way Realloc() was fixed: ReAlloc would break if given oldptr is NULL, but now we simply switch to doing a malloc instead and only admonishing the wrong call to ReAlloc instead of Malloc analyser.cpp and joiner.cpp have been adapted to these new calling schemes commit f3dc4cada1aab42f4ac415cb0adb90ad5db6eed7 Author: Frederik Heber Date: Mon Aug 18 10:27:34 2008 +0200 Time analysis is back in commit 9e5a04de7e452653cd51c0bbb3ed1427808806fb Author: Frederik Heber Date: Mon Aug 18 10:25:28 2008 +0200 Included missing silicon and took more or lesss sensible values for valence orbitals from a website commit 5e0d1f1c85a9ade010b400eb5a691b8c94a48949 Author: Frederik Heber Date: Wed Aug 6 14:00:18 2008 +0200 config::Save() and config::Load() parse MD steps into and out of molecule::Trajectories. Tested. commit e9b8bbc350d26b202af7d90b4200003a5a492355 Author: Frederik Heber Date: Wed Aug 6 11:02:01 2008 +0200 Rename of class vector to Vector to avoid conflict with vector from STL. commit d7e30ca04fa0adf2762a650a9f855a8ded1885f5 Author: Frederik Heber Date: Wed Aug 6 10:59:06 2008 +0200 Scaffold of new function: VerletForceIntegration() - does MD step by parsing external forces file. PCP is too slow and unnecessarily ECut-dependent. If we incorporate the Verlet integration into molecuilder, we get a much more complete "wrapper" package. commit b4b7c37aea37c05e26de1669061a747720f5d760 Author: Frederik Heber Date: Wed Aug 6 10:50:52 2008 +0200 pcp.speed is parsed and analyzed again (Time matrices). This was commented out before. commit fb936468428f5110b9922aa5f20ccb14c1c45e08 Author: Frederik Heber Date: Wed Aug 6 10:37:04 2008 +0200 The entries in the Header of ForceMatrix are now separated by tabs, not white spaces in general This fixes problems with the headers of the speed entries of MPQC which are multiple words separated by spaces. As we already use tabs to separate each entries, we just had to rewrite the code to split by '\t' which is done by getline. commit 4aa03a552cf306f8b3265e786d08e545bf01bed4 Author: Frederik Heber Date: Thu Jul 31 16:05:37 2008 +0200 new test function CheckForConnectedSubgraph() and bigger rewrite of PowerSetGenerator() and SPFragmentGenerator() to allow for ings CheckForConnectedSubgraph(): Is an O(N^2) function to check whether we do not create fragments we don't want to have (i.e. disconnected ones) PowerSetGenerator(): Instead of adding the possible Walkers to an AtomStack, we use the bonds we store in the BondsPerSPList, which by the way have the necessary directional information (i.e. they come with the predecessor in Bond#leftatom). This way, we generate fragments in ring structures without any problems. SPFragmentGenerator(): had to be adapted as the calling in PowerSetGenerator() had changed a bit. We already let the root be added by this function and don't add it in PowerSetGenerator(), which simplifies (no if-catch for first order) the code there a bit. Furthermore, we had to check whether an added vertex was not already in the keyset (this may happen, as both edge 1<->2 as 2<->1 may appear at different SPLevels in BondsPerSPLevel: Ring structures in contrast to tree structures don not allow for uniqueness! This is first realised through the hash map storing the keysets). This again caused a change in recognizing when the stack contains a fragment, as Suborder-bits (bits is the number of atoms added for this combination) is not the way anymore - we use an additional Counter "Added". Test on Benzonitrile was successful. We counted the possible fragments by hand, checked them furthermore till order 5 and the numbers were ok up till full order 8 in the end. commit af6d8f00912cd5022f1a2c33ac397ac378ec965d Author: Frederik Heber Date: Wed Jul 30 16:16:21 2008 +0200 CyclicStructureAnalysis(): BUGFIX - BFSStack may be empty if we can't find the loop, FragmentBOSSANOVA(): BUGFIX - FragmentLowerOrderList may be NULL commit 41baafea7091ff08639dc60305b81c5e1871ee8e Author: Frederik Heber Date: Wed Jul 30 15:11:30 2008 +0200 2 BUGFIXES: CreateAdjacencyList() and CyclicStructureAnalysis() CreateAdjacencyList(): with benzophenone and indigo it was found that the correction of the bond degree was not working properly. Carbon bound to oxygen and other carbons would not raise the bond degree to oxygen preferentially over the carbon bonds, which lead to wrong bond degrees in the end. We refrained from using matrix schemes as these are not O(N) in a simple manner, but remained with the local scheme that now checks each also mismatching bond partner for its number of bonds and takes preferentially the one with the fewest bonds as the increase candidate. CyclicStructureAnalysis(): with biphenylene and cholesterol it was found that the cycle detection did not work as expected. Cycles were found twice due to a back edge being shared by two cycles at the same time (and it's randomly dependend on the vertex ids which cycle is found first). Hence, we now do a backtracking of a cycle candidate, looking whether each of its vertices is not already set to be cyclic. If so, we removed the last added vertices from lists and stacks (i.e. the closing edges), so that the other BFS finger with the real candidate may still reach the looked-for backedge (otherwise the vertex would be marked gray and hence not visited). commit 683914b4876eed83b28d109437ddb9f72c5a18f5 Author: Frederik Heber Date: Mon Jul 28 16:41:22 2008 +0200 CyclicStructureAnalysis: BUGFIX - MinimumRingSize of non-loop atoms was wrong - new bool atom:IsCyclic states whether atoms is part of a cycle or not, this is set in CyclicStructureAnalysis() - MinimumRingSize was set to MinimumRingSize plus ShortestPath thereto. This gives correct results only if this goes to a loop-member. However the if-condition was phrased in such a manner, that it became possible that non-loop members (with MinimumRingSize set below AtomCount) would now also be regarded als loop members. This is sort of a triangle inequality problem :), path of A to B plus path from B to C is probably not the same as path from A to C in terms of length commit 87e27351ede74c047e0a540d97da19854f66ea26 Author: Frederik Heber Date: Mon Jul 28 16:18:25 2008 +0200 CyclicStructureAnalysis: BUGFIX - MinimumRingSize was not set correctly - During BFS search from non-loop members to loops, Walker was pushed instead of Root at start of BFS - if Backedge lead to a terminal hydrogen, this hydrogen ended up with AtomCount MinimumRingSize instead of correct one. commit b610433d971fac0a9b4ebc55ee01222a06161971 Author: Frederik Heber Date: Mon Jul 28 15:47:52 2008 +0200 Removed Output of parsed elements db (does work well, so not necessary anymore) commit 95845742c9849804a86919863f94de644eb5f1a5 Author: Frederik Heber Date: Mon Jul 28 15:45:43 2008 +0200 CheckOrderAtSite: BUGFIX - Added MinimumRingSize to parameter list, as otherwise infinite loop If FragmentBOSSANOVA checks for remaining below MinimumRingSize per atom, CheckOrderAtSite however does not and fills AtomMask with values for atoms not to be included, we end up with an endless loop. Hence, MinimumRingSize is given as an additional parameter and CheckOrderAtSite checks for it for adaptive and for global increase (for stepwise we don't have the loop problem and FragmentBOSSANOVA will do the right thing). commit 3902484c207d407476dea9c34dc0482f306011aa Author: Frederik Heber Date: Thu Jul 24 16:00:19 2008 +0200 BIG change: Hcorrection included and bugfix of analyzer (wrt forces) - Hcorrection is supplied via molecuilder which gives correction values if hydrogen atoms are to close and thus already feel each other's influence. This correction energy matrix is also parsed ans subtracted from the approximated energy matrix generated from the fragments. This impacts both on joiner, analyzer and molecuilder - Forces were not working which had multiple causes: - first, we stepped back down to absolute errors which rather gives a feel about convergence (1e-6 is simply small and neglegible) - there may have been bugs where (either in Force or in ForceFragments) adding up took place, this is cleaned up - more routines have been abstracted from analyzer into datacreator functions - the order of ions had changed, re-run with current molecuilder, calculation and subsequent joining/analyzing brought correct results finally - plots were bad still due to wrong axes (two more functions finding max/min values), use of wrong columns in plot file commit c685eb762cafcd3ac83229798d1b5348383442c3 Author: Frederik Heber Date: Thu Jul 24 15:58:40 2008 +0200 adding atom: element is now first, not last parameter and output message is clearer This is to remedy the problem of forgetting the element's Z value, the output message should give clear indication. commit 82cd9fdbc792e4131e56a2df3b65817208d6f955 Author: Frederik Heber Date: Thu Jul 24 15:56:00 2008 +0200 BUGFIX: elements.db is now using path instead of file elements database was not correctly stored, as a filename was still given in Load/StorePeriodentafel instead of the path. This is corrected. commit 7d96c688dc2211a43672144fbe15e285661198f4 Author: Frederik Heber Date: Wed Jul 9 15:33:57 2008 +0200 class vector was wrongly still in molecules.hpp instead of vector.hpp commit 0378e209ab9d2f0bacdbc445771626883a31a43c Author: Frederik Heber Date: Wed Jul 9 15:24:20 2008 +0200 StoreKeySetFile(): removed unncessary iterator "ende" storing commit 1b62f36c7f43cecd8e3b385195d91298fbf95215 Author: Frederik Heber Date: Tue Jul 8 15:12:55 2008 +0200 changed verbosity a bit commit 68cb0f6ecaea70afd3066840aea2c154a6ecfb92 Author: Frederik Heber Date: Fri Jun 27 23:12:52 2008 +0200 introduced shieldings to analyzer and joiner both now handle pcp.sigma_all...csv files just as pcp.forces.all. Therefore the data format in pcp/perturbed.c was adapted a bit, as we need a header. periodentafel.hpp got periodentafel and element class from molecules.hpp commit 1f066feec5dd1816d82aa85f8b131467fb6faaa0 Author: Frederik Heber Date: Mon Jun 23 13:25:09 2008 +0200 ParseCommandLineOptions(): new option 'O' centers system at origin Just calls CenterOrigin for the given molecule. commit f14a52d761035defda8d929cf23b405d9285bfef Author: Frederik Heber Date: Mon Jun 23 13:23:50 2008 +0200 StoreFragmentFromKeySet(): BUGFIX - commented out the Leaf->AddBond for non-hydrogen atoms by accident This happened because the adding was hidden in the "*out << ... << endl;" directive. I put it onto an extra line and surrounded it with "*out <<" and so on so that it may still be used. commit 2565207417a14b61bdcd62329a6c9df902acf1d4 Author: Frederik Heber Date: Sun Jun 22 15:39:41 2008 +0200 ParseCommandLineOptions(): BUGFIX - break was missing for case 'n' causing next argument to be skipped commit 8a3e457fdc8672973ca81864d2f77e092e907b83 Merge: d427bdd d250b29 Author: Frederik Heber Date: Sun Jun 22 15:27:47 2008 +0200 Merge branch 'bisect' into AdaptiveMolecuilder commit d250b29e2b8e1c054b7f93c4f475f36dfb7a3a33 Author: Frederik Heber Date: Fri Jun 20 10:08:13 2008 +0200 MatrixContainer::ParseMatrix(): BUGFIX - line_s_.eof() Bug was introduced by fixing compiler warnings, were we overlooked changing one line.eof() to lines.eof() in the second nested for-loop commit d427bdde3cb24cf94d568fcc40e8a7154d5b8670 Author: Frederik Heber Date: Fri Jun 20 09:08:31 2008 +0200 OutputConfigForListOfFragments(): boundary is now 2.5 Angstroem instead of 5 Angstroem 5A is too huge for the small molecules resulting during the fragmentation process commit 14d4d4644ea84a22d5937320a9912d6d1b62ef29 Author: Frederik Heber Date: Mon Jun 16 16:09:27 2008 +0200 BUGFIX: If other databases could not be loaded, no error was produced, resulting in strange behaviour of the fragmentation routine. Now an error message is produced, though we still continue. The problem was the switch in handling const char * and a huge mess in LoadPeriodenTafel() with strncat and strncpy. commit edb65060a73f63aabcd848073d037264b4a050f7 Author: Frederik Heber Date: Fri Jun 13 16:26:50 2008 +0200 some mor changes to fine-tune the cluster generation. Sadly, VolumeOfConvexEnvelope() is not robust/stable, with Ratio1.4-1/1800K/compundH.*.xyz no usable convex envelope was found but points were connected right through the cluster. commit 318bfd37d3e5e3924d9bac94b3435c4b628d634e Author: Frederik Heber Date: Fri Jun 13 11:18:57 2008 +0200 Final touches for Create Clusters in water repetition in CreateClustersinWater(), some stuff thrown out in VolumeOfConvexEnvelope (loop to throw out some more points, which does not happen if we take any appearing in at least one BoundaryPoints), some variable declarations shifted to the start of a function, BoundaryPoints are given to functions and if NULL is created by calling GetBoundaryPoints() and free'd subsequently. commit 6c58125d49933c6c85972c57b3af4f3c937fa82f Author: Frederik Heber Date: Thu Jun 12 21:34:36 2008 +0200 Smaller fixes CreateClustersinWater is now PrepareClustersinWater (as actual suspension is done in VMD still) BoundaryPoints can be returned or not in VolumeOfConvexEnvelope commit 110cebe3fea3969bcc2d7a77d60d8d02c0c7734f Author: Frederik Heber Date: Thu Jun 12 21:14:46 2008 +0200 VolumeOfConvexEnvelope: Works! VolumeOfConvexEnvelope has been analysed into various smaller functions and approach is working. two new files: boundary.?pp various new functions: class Tesselation with AddPoint(), TesselateOnBoundary() and GuessStartingTriangle() does the actual tesselation CreateClustersinWater() will create the repetition of the cluster with correct spacing (unfinished). GetDiametersOfCluster() calculate the greatest diameter in projection per axis GetBoundaryPoints() gets the boundary on the convex envelope by projection for a molecular cluster GetCommonEndpoint() finds the endpoint two lines are sharing commit bc84e47f9f13a622b8ffa4b250cd9f41bd97cd8d Author: Frederik Heber Date: Thu Jun 12 21:14:32 2008 +0200 cosmetics commit 8eb17a7adbbd9a60923470c82989201886dfb9c8 Author: Frederik Heber Date: Thu Jun 12 21:13:43 2008 +0200 StorePeriodentafel(): BUGFIX - there still was elements.db instead of define value commit cdee6b32d79cd13f039afa954391109eedbf8b22 Author: Frederik Heber Date: Tue Jun 10 13:31:03 2008 +0200 fastparse was not yet working for more than one ion type moved parsing of ion type numbers before the coordinates parsing loop (prescanning). Bug came due to sequential setting on fastparse commit 49de64f43390d73584f072908bf52bbacde73c26 Author: Frederik Heber Date: Tue Jun 10 13:21:32 2008 +0200 VolumeOfConvexEnvelope() finished and tested with SiOH4, 1_2_dimethoxyethane and CSHCluster (Ratio1-1) commit 233e33e9480b84b60d83d44696ee46721204ee12 Author: Frederik Heber Date: Tue Jun 10 13:21:13 2008 +0200 fastparse enabled by "-n" commit 498a9f0a80c4bdd9c53148a9c59c1b7a4a56a22e Author: Frederik Heber Date: Tue Jun 10 13:20:12 2008 +0200 some new functions: vector::vector(), vector::ProjectOntoPlane(), vector::One(), vector::Init() vector::vector() new constructor allowing for setting of components vector::ProjectOntoPlane() projects vector onto plane described by normal vector vector::One() sets components to given double vector::Init() initialised components to given values commit 3dfad8a4201cfdb6a7b9916e1a68d0087b9cceb1 Author: Frederik Heber Date: Tue Jun 10 13:15:52 2008 +0200 Revert "some new functions: vector::vector(), vector::ProjectOntoPlane(), vector::One(), vector::Init()" This reverts commit d11f22c4a97b28e748e8ef9cb37f315ad278ac27. commit 62c16c6c66c80350d6b87fe7eddb9e936cc4b9ef Author: Frederik Heber Date: Tue Jun 10 13:13:41 2008 +0200 enabled fast parsing (-n) config::Load(): the repetition and thereby impossible setting of "sequential" makes reading of big configs very slow. Hence, a command line parameter can be specified to skip more instances of Ion_Type... commit 17ce5c7296def2b5de1bec37a2d35a1aa9e78b35 Author: Frederik Heber Date: Tue Jun 10 13:11:22 2008 +0200 some new functions: vector::vector(), vector::ProjectOntoPlane(), vector::One(), vector::Init() vector::vector(): another constructor for directly initiating vector vector::ProjectOntoPlane(): projects a vector onto the planbe defined by a given normal vector vector::One(): set all components to 1 vector::Init(): initialises vector with given components commit d52ea1b95c0737e6f74144cdd7c80b914460b1d9 Author: Frederik Heber Date: Sat Jun 7 15:21:53 2008 +0200 Working version of PAS transformation (tested on C-S-H cluster) and code scaffold of VolumeOfConvexEnvelope that's untested so far PAS simply calculates inertia tensor, diagonalizes it via GSL and transforms molecule into eigenvector system such that z axis is eigenvector of biggest eigenvalue. commit 65684fe4aeaaa75d4330f79782835a5a7a1b9d07 Author: Frederik Heber Date: Sat Jun 7 15:21:33 2008 +0200 these are all smaller fixes due to extensively enabled compiler warnings e.g. local variable shadows definition of a global one commit fa40b590ae065d7e32aad6262abe84f43f935ec4 Author: Frederik Heber Date: Sat Jun 7 15:20:30 2008 +0200 these are all smaller fixes due to extensively enabled compiler warnings e.g. local variable shadows global (mol::nr by local nr) and others commit a19da5d7a0a0600c5861cea9fef8ae21cc04f188 Author: Frederik Heber Date: Sat Jun 7 15:16:19 2008 +0200 new aclocal macro with controles all the enable-debug/optimization/warning in a unified manner and still keeps packages independent of each other. Note that Ralf suggested specifying optimizations in CFLAGS directly, due to the load of activateable warnings, i saw it rather fit to make such a configure option. commit 1f642268e359bca860ac2c8ceb4dd15f33268e0a Author: Frederik Heber Date: Mon Jun 2 12:28:29 2008 +0200 needed for strncat and companions for gcc-4.3.0 commit 0ba2b0a58c53ca568e683849b188703d2d5af5da Author: Frederik Heber Date: Fri May 30 17:48:16 2008 +0200 libblas needed for libgsl is now found via AC_SEARCH_LIB and list blas cblas gslblas gslcblas commit 5e4058b78eadb943a2301066be5c8ada549f6595 Author: Frederik Heber Date: Fri May 30 15:51:53 2008 +0200 OutputConfigForListOfFragments(): return of configuration::GetDefaultPath() is checked for NULL commit 95078ca4732979af555e943b8313bc34ee581d98 Author: Frederik Heber Date: Fri May 30 15:50:45 2008 +0200 AM_CFLAGS thrown out as warnings are added to CFLAGS in configure-part. Huge changes to make mpi working with given environment variables MPICC and MPILIBS commit 6b33de20554fbe8605c0a37c1145e9b75c16283f Author: Frederik Heber Date: Fri May 30 12:43:34 2008 +0200 LoadPeriodentafel() mixup of cat and cpy orders prevented loading of database with a given path commit fedd5fbd70ec189e8e4c28aa0b8b94531a943479 Author: Frederik Heber Date: Fri May 30 12:42:49 2008 +0200 main(): periode is not printed anymore after parsing cmd options, ParseCommandLineOptions(): one extra space after three dots commit 4b4d6539988f3597846b5269ec16dd92769df1c2 Author: Frederik Heber Date: Fri May 30 11:03:32 2008 +0200 for bigger molecules listing of found keywords slows things done (yet, parsing is slow nonetheless) commit 37b5bb45fbac22d3d8ac22472f9899235fde4a17 Author: Frederik Heber Date: Mon May 26 15:28:28 2008 +0200 renamed ElementsFileName to PathToDatabases, -e now gives path to databases instead of elements d b file We rather now give the path and not elements db file as all the databases generally reside in the same dir. commit d7d29c8de30f5e13b53d2ff84d98af623ea5518d Author: Frederik Heber Date: Mon May 26 15:25:38 2008 +0200 renamed ElementsFileName to PathToDatabases, -e now gives path to databases instead of elements db file We rather now give the path and not elements db file as all the databases generally reside in the same dir. commit a2c08448e34b43e5f13d9ce4fd9ad56901b7b761 Author: Frederik Heber Date: Mon May 26 15:24:33 2008 +0200 BUGFIX: config files' path in the current working directory would not be recognized correctly. This bug was introduced due to the for-loop speedup. commit 4ba4a7a4284581071c90e32d20b84638f6535a77 Author: Frederik Heber Date: Mon May 26 15:23:29 2008 +0200 BUGFIX: single letter FragmentNumbers gave "\n" as return string. This bug was introduced when we changed the code from for(..=0; ... < bla; i++) to for (..=i..;i--;) commit 27c6bed417eee81579045472e65747039fcf60db Author: Frederik Heber Date: Mon May 26 15:23:02 2008 +0200 Some sensible starting values for element class construct commit 0329bfbf7e293c546e599210029dabc0faefc481 Author: Frederik Heber Date: Mon May 26 15:22:31 2008 +0200 new define LocalPath being the local path for pointers to set to (like PathToDatabases) commit 1e9384a6e32201e86eeb94aa0ab96989b3343686 Author: Frederik Heber Date: Mon May 26 15:22:10 2008 +0200 bit more verbosity on the FragmentNumber commit c9c643a515314f6e3a2907ebf2b3bb5e708d0b2d Author: Frederik Heber Date: Mon May 26 15:21:19 2008 +0200 fragmentation no more has various methods (dropped ... A) commit 9a1b84acd58750f8b8a589c26f814bdd50c82f9b Author: Frederik Heber Date: Mon May 26 15:20:10 2008 +0200 BUGFIX: line.erase() threw exception with illegal line end Found by test case (molecuilder test 3), just do it the more complicated way. commit a251a3154c4639182ac91a4c9a60749cf9f1f0aa Author: Frederik Heber Date: Mon May 26 12:52:00 2008 +0200 molecule::CreateAdjacencyList() now needs IsAngstroem as parameter This is necessary, as the database values (covalent radii et al) are in Angstroem, hence don't match if we use Bohrradii as length unit instead. CreateAdjacencyList() converts units and now finds correct bond structure and fragments properly. commit 040f939737e2f25b621255cb260f20f4a72946cc Author: Frederik Heber Date: Sat May 24 14:31:46 2008 +0200 removed specialised CFLAGS for general AM_C(PP)FLAGS that just enable all warnings commit 7f3b9d586ee7b40daaed7e586efd3f0d178326f6 Author: Frederik Heber Date: Fri May 23 11:17:19 2008 +0200 Lots of for loops now count in reverse order where it does not matter, some 3 -> NDIM for(i=0;i Date: Wed May 21 13:18:11 2008 +0200 ParseMatrix(): char * to string, Contains() hat KeySetContainer:: still in front (new g++ of hardy complained) commit ca2b8351d36cdb8ecccc8ba4a307064e6a6fcdad Author: Frederik Heber Date: Wed May 21 13:15:32 2008 +0200 command line parsing outsourced to ParseCommandLineOptions(), cases in main() listed in alphabetical order, setting of cell_size by hand replaced through already present SetDimension() new function ParseCommandLineOptions() does the command line parsing, subsequently some variables weren't needed anymore in main(). sorted the cases in switch in main() of the interactive menu in alphabetical order. In 't'ranslate and 'c'enter cases, SetDimension() and by-hand setting cell_size was present. The later was thrown out commit a9d2544724995d2401c4c0710adbfb2b1becee68 Author: Frederik Heber Date: Wed May 21 13:14:06 2008 +0200 new function CenterInBox, some char* converted to string CenterInBox centers the given geometry in a rectangular box of given edge lengths new g++ that came with ubuntu hardy complained about deprecated use of char* instead of string (for constant char arrays such: "test") commit 3b67a19c331349c124108e1936b2e8eab25ec373 Author: Frederik Heber Date: Wed May 21 13:13:17 2008 +0200 new vector header added to molecuilder_SOURCES commit cf2de5c1bfe1d8b2db947be6a7521e3f09095598 Author: Frederik Heber Date: Wed May 21 13:12:54 2008 +0200 one lousy space added commit 342f33f9b32f60351e5e75e68fc61b2624f2d554 Author: Frederik Heber Date: Wed May 21 11:24:54 2008 +0200 new header file for the vector class, new operators +=,*=,*,+ commit 98b1d274f2a40b91f0e41792478e05950bffb599 Author: Frederik Heber Date: Fri May 16 15:35:43 2008 +0200 main(): typo in Usage message, BUGFIX - command line arguments did not end in exit and flag renamed to ExitFlag BUGFIX - problem was flag > 1 instead of flag >= 1 check commit 0b051479db2dcd5879e76693155b80d3b0d8cc6d Author: Frederik Heber Date: Fri May 9 16:38:27 2008 +0200 CyclicStructureAnalysis(): forget to check whether we actually have found rings or not (only then MinimumRingSize needs to be checked for non-set neighbours also) commit fc850d10e0fcb47d27b1b6baf17186a20debf1ea Author: Frederik Heber Date: Fri May 9 16:20:08 2008 +0200 MinimumRingSize is now an array over all atoms Each entry in MinimumRingSize defines the maximum bond order possible due to membership in or vicinity to a ring. In order to do create this array, CyclicStructureAnalysis() was expanded with another BFS going over all atoms that are only close to a ring (nearest ring member is search and entri in array set). All other functions such as DepthFirstSearchAnalysis() and FragmentBOSSANOVA(), where the MinimumRingSize is now checked (and not in FragmentMolecule) anymore, are adapted to have an array parameter. commit de293ac530466215e29d973ad379a2e65165a40c Author: Frederik Heber Date: Fri May 9 15:49:57 2008 +0200 TranslateIndicesToGlobalIDs() did not check whether FragmentList[..] != NULL commit f30216592247d6e5e03bad30325a3cd465013fa4 Author: Frederik Heber Date: Fri May 9 14:50:42 2008 +0200 joiner now writes ENERGYPERFRAGMENT file for adaptive BOSSANOVA commit bf2db1e99c572bcefe2ba34b3c1a8026d8b90dbe Author: Frederik Heber Date: Fri May 9 14:50:16 2008 +0200 CreateDataFragment(): endline after datum in header commit 396d06593ac8e4bfc3f523f3be261ca555407c48 Author: Frederik Heber Date: Fri May 9 14:49:46 2008 +0200 ENERGYPERFRAGMENT without ".dat" commit 6f6a8ee98e006ee7598831d5e56396ead5ffa6c8 Author: Frederik Heber Date: Fri May 9 14:49:30 2008 +0200 some comments for where "F" and where "E" terms are created commit 5de3c9715484117abab874d386126879cace7a9f Author: Frederik Heber Date: Thu May 8 19:31:04 2008 +0200 molecule::CheckOrderAtSite() now interprets negative Orders as adaptive increase by parsing EnergyPerFragment.da t positive Order is global increase till all sites have at least this order, Order 0 means single global increase step, negative Order is the exponent in 10^{-Order} to give the threshold value: ENERGYPERFRAGMENT is scanned in to a map (sorted by values) and all fragments still above the threshold are taken into AtomMask for increase. Jo iner has to write this file with (Root id of Fragment, energy contribution) pairs. commit a529de23ab0454b5100271094a23f2836cfca2e9 Author: Frederik Heber Date: Thu May 8 18:18:07 2008 +0200 molecule::CheckOrderAtSite() returns bool and used as threshold criterium to break while in molecule::FragmentMolecule() As we are now near the end of the switch to adaptive increase of the bond order, the first step was to increment the OrderAtSite on all sites equally. This is now implemented. CheckOrderAtSite() checks whether the order is still below the desired value at one site and if so continues. In this while-loop we fill the RootStack and call BOSSANOVA. The sequence of AssignKeySets.. and FillRootStack... was flipped for this. commit bf46daa8afbb82c7de05fbedc890325cd98c83eb Author: Frederik Heber Date: Thu May 8 17:52:11 2008 +0200 new function molecule::CreateMappingLabelsToConfigSequence() creates SortIndex in molecule::FragmentMolecule() further and now final abstraction of FragmentMolecule() commit 87f6c98765e07307ce97e48dcfbb5a4069cdcfac Author: Frederik Heber Date: Thu May 8 17:39:36 2008 +0200 new function MoleculeLeafClass::TranslateIndicesToGlobalIDs() used in molecule::FragmentMolecule() MoleculeLeafClass::TranslateIndicesToGlobalIDs() abstractizes translation of local atom::nr returned by BOSSANOVA per fragment into one list of global indices that can be used to store fragment configs and globally valid keyset file commit da5355158c7aa76269ad1823da9a96b5ac114691 Author: Frederik Heber Date: Thu May 8 17:26:55 2008 +0200 new functions MoleculeLeafClass::AssignKeySetsToFragment() and MoleculeLeafClass::FillListOfLocalAtoms() and molecule::OutputListOfBonds(), Count() now const commit df2fcae341603b39aa6e7c81927780a4b56e6472 Author: Frederik Heber Date: Thu May 8 17:25:00 2008 +0200 FragmentMolecule(): abstractized AssignKeySetsToFragments() and shifted some memory deallocation around MoleculeLeafClass::AssignKeySetsToFragments() now does the splitting up of the keysets into FragmentList[] array some memory dealloaction (ListOfLocalAtoms) was shifted up a bit, closer to where it's not needed anymore. some comments changed and some more output included commit d2a2942f50d4672158abc620f6af83d3524d381b Author: Frederik Heber Date: Thu May 8 17:22:41 2008 +0200 new function FillListOfLocalAtoms() checks whether List needs filling or is already present, Count() const Count() is now Count() const new function FillListOfLocalAtoms() checks for NULL pointers and if found fills the list by calling CreateFatherLookupTable() commit fc130990ba824f75d8475b8f7f294eb379c3352b Author: Frederik Heber Date: Thu May 8 14:45:52 2008 +0200 MoleculeLeafClass::FillRootStackForSubgraphs used to remove filling of root stack (abstraction) commit 4a54f335bc5cd305916789ff44d100d50a98b477 Author: Frederik Heber Date: Thu May 8 14:45:25 2008 +0200 new functions MoleculeLeafClass::Count() and MoleculeLeafClass::FillRootStackForSubgraphs() Count: counts leaves in chain list FillRootStackForSubgraphs: fills root stack array from atom's in each fragment/subgraph commit 386aa29d1bbd5ac0019a7d04316e3f8d45a5c442 Author: Frederik Heber Date: Thu May 8 14:41:47 2008 +0200 FillBondStructureFromReference: previous == NULL was bad idea, new functions Count() and FillRootStackForSubgraphs() FillBondStructureFromReference: checking previous == NULL if we are the first is bad due to starting node (with mpty leaf) being actual previous, hence we decrease FragmentCounter before return, thus climb up the ladder and then down again and free in this course. Initial list pointer is free'd if FragmentCounter == 0: much better! Count: simply counts the number of further leaves in the chain list, also by the neat recursive trick FillRootStackForSubgraphs: Fills a rootstack by going through the leaves of a subgraph and checking on their atom's father's atom::AdaptiveOrder against given Order. This is further abstraction for molecule::FragmentMolecule() commit 9fcf479595dd39cf6703677eb220251fac77a2e7 Author: Frederik Heber Date: Thu May 8 14:04:42 2008 +0200 new function molecule::CheckOrderAtSite and molecule::FragmentMolecule() abstractized molecule::CheckOrderAtSite() just checks a given order against atom:AdaptiveOrder and whether there's still something to do for the fragmentation. MoleculeLeafClass::FillBondStructureFromReference, CreateFatherLookupTable, along with the molecule::CheckOrderAtSite are used to make the structure of molecule::FragmentMolecule clearer commit c82f3d1d590c3a59b332f8f562e3ffddb0d32ec3 Author: Frederik Heber Date: Thu May 8 14:02:43 2008 +0200 new function MoleculeLeafClass::FillBondStructureFromReference that fills the bond structure of subgraphs from total molecule new function to abstractize molecule::FragmentMolecule more and more as the function lacks structure commit 8f75a455e44b75b6288faf0238bb8c86627a4a49 Author: Frederik Heber Date: Thu May 8 14:01:42 2008 +0200 new function CreateFatherLookupTable Creates a lookup table for true father's atom:nr -> atom, which is used during the molecule::FragmentMolecule lateron. Implemented as a template to be used not only for atoms but also for bonds and others commit fe5589e98fa7bb039905c2aa66d94af21115550d Author: Frederik Heber Date: Thu May 8 14:00:24 2008 +0200 Matrix::ParseMatrix()L: comment makes it clearer at what fragment with which index something went awry commit 8d9c387d8b2dbb15d2d71353f662bda798b156f8 Author: Frederik Heber Date: Wed May 7 16:46:33 2008 +0200 rewritten CyclicStructureAnalysis(): uses DFS spanning tree and limited BFS from all back edges The DFS tree is given via a StackClass and from each BackEdge a BFS is started to find the leftatom from rightatom but not by taking BackEdge itself. Hence, it finds the smallest circle and returns it. Also, it limits itself by constantly redefining MinimumRingSize as the minimum of this and the current RingSize. Tested to good results on buckyball. And may easily be enhanced to scanning and returning all rings (but so far we only need the minimum ring size). commit 6d35e462d5c89a48ff8212fab4811f87fdab291e Author: Frederik Heber Date: Wed May 7 15:38:13 2008 +0200 AtomStackClass -> template StackClass change in new file stackclass.hpp, other templates to helpers.hpp StackClass was changed to a template and as template code may only be present in header file was moved to a new header file stackclass.hpp. New file was added to Makefile.am Other templates (list management et al) were moved to helpers.hpp as they are more sensibly placed there. commit db066d756f5b01d67a9bcb1ea28c9571452a3762 Author: Frederik Heber Date: Wed May 7 15:35:09 2008 +0200 changed comments a bit commit 7b42617324deb08ac411bdd2181e40d58b221499 Author: Frederik Heber Date: Tue May 6 11:48:00 2008 +0200 MatrixContainer::MatrixContainer() debug message fixes only, ForceMatrix::ParseIndices() re-done parsing of Forces-Factors file ParseIndices() was hacked down to just ...[j]=j entries in the belief that we do not need ForcesFactors anymore. However, we do due to the saturated hydrogen and hence the index parsing thrown out before is needed again. This caused joiner to return faulty forces of course. commit 63382d0f3121ce63d14ba9c280087cae6a4c3794 Author: Frederik Heber Date: Tue May 6 11:45:31 2008 +0200 KeySetFile is stored without an additional last tab on each line commit 3c4b089ee6460a3d67b5db52602da06a85904fe5 Author: Frederik Heber Date: Mon May 5 18:54:44 2008 +0200 joiner crashed due to incorrect destructing of MatrixContainer, analyzer did not initialise KeySets in ParseKeySets joiner crashed as ParseMatrix would return without free'ing initialized Matrix and RowCounter when suffix file cannot be opened. Now, they are initialized in such a manner that ~MatrixContainer recognizes and free's them analyzer would stumble afgter parsing keysets on the order, as he was looking for -1 to which KeySets was not properly initialized but what should be read from KeySets file. Also, analyzer would parse the final tab as a number which rendered nonsense. Hence, StoreKeySetFile does not ptroduce a tab after last entry per line anymore commit 2459b1b8b885ddb84c9c4feab2f53d9d08d718c0 Author: Frederik Heber Date: Mon May 5 18:19:05 2008 +0200 ForcesFile and TEFactors are _needed_, reincorporated. UniqueFragments structure is now in BOSSANOVA ForcesFile is again written, as we need it for the hydrogen not coming saturation (forces!) TEFactors are back, as despite my notion they are needed in the evaluation UniqueFragments structure is shifted from PowerSetGenerator to FragmentBOSSANOVA. Actually only for the labels - however, the if was changed to test the real indices (which are also always the same, which is better for adaptive runs) - but might be more useful there still. analyzer and joiner again parse indices. commit bd65791c80eaf19f1799a7c9599f95606c4a4796 Author: Frederik Heber Date: Fri May 2 17:18:27 2008 +0200 Free(): only set to NULL if it was free'd otherwise it is already commit 3b15bb4271e1d6dbd035284767a09bd363a96360 Author: Frederik Heber Date: Fri May 2 17:18:05 2008 +0200 ~MatrixContainer(): Bugfix - Free if Matrix[MatrixCounter] would also occur if nothing had been allocated so far commit e6f8b7cccc1dd036398666e6e573bb4b48074037 Author: Frederik Heber Date: Fri May 2 15:35:10 2008 +0200 commenting in header changed for the four main functions that basically do the fragmentation commit db942effae4d25e57224c90078ac288434a4a783 Author: Frederik Heber Date: Fri May 2 15:25:48 2008 +0200 HUGE REWRITE to allow for adaptive increase of the bond order, first working commit Lots of code was thrown out: -BottomUp, TopDown and GetAtomicFragments -TEFactors are now used as "CreationCounters", i.e. the count how often a fragment as been created (ideal would be only once) -ReduceToUniqueOnes and stuff all thrown out, since they are out-dated since use of hash table Other changes: -CreateListofUniqueFragments renamed to PowerSetGenerator -PowerSetGenerator goes not over all reachable roots, but one given by calling function FragmentBOSSANOVA -FragmentBOSSANOVA loops over all possible root sites and hands this over to PowerSetGenerator -by the virtue of the hash table it is not important anymore whether created keysets are unique or not, as this is recognized in log(n). Hence, the label < label is not important anymore (and not applicable in an adaptive scheme with old, parsed keysets and unknown labels) (THIS IS HOWEVER NOT DONE YET!) The setup is then as follows: 1. FragmentMolecule a. parses adjacency, keysets and orderatsite files b. performs DFS to find connected subgraphs (to leave this in was a design decision: might be useful later) c. a RootStack is created for every subgraph (here, later we implement the "update 10 sites with highest energy contribution", and that's why this consciously not done in the following loop) d. in a loop over all subgraphs d1. calls FragmentBOSSANOVA with this RootStack and within the subgraph molecule structure d2. creates molecule (fragment)s from the returned keysets (StoreFragmentFromKeySet) e. combines the generated molecule lists from all subgraphs f. saves to disk: fragment configs, adjacency, orderatsite, keyset files 2. FragmentBOSSANOVA a. constructs a complete keyset of the molecule b. In a loop over all possible roots from the given rootstack b1. increases order of root site b2. calls PowerSetGenerator with this order, the complete keyset and the rootkeynr b3. for all consecutive lower levels PowerSetGenerator is called with the suborder, the higher order keyset as the restricted one and each site in the set as the root) b4. these are merged into a fragment list of keysets c. All fragment lists (for all orders, i.e. from all destination fields) are merged into one list for return 3. PowerSetGenerator a. initialises UniqueFragments structure b. fills edge list via BFS c. creates the fragment by calling recursive function SPFragmentGenerator with UniqueFragments structure, 0 as root distance, the edge set, its dimension and the current suborder d. Free'ing structure 4. SPFragmentGenerator (nothing much has changed here) a. loops over every possible combination (2^dimension of edge set) a1. inserts current set, if there's still space left a11. yes: calls SPFragmentGenerator with structure, created new edge list and size respective to root distance+1 a12. no: stores fragment into keyset list by calling InsertFragmentIntoGraph a2. removes all items added into the snake stack (in UniqueFragments structure) added during level (root distance) and current set commit 260934983a76c25770b6a1f5706e2fc4eb1eecec Author: Frederik Heber Date: Tue Apr 29 14:31:38 2008 +0200 Velocities were not correctly handled, also not in fragments First bug was loading config with velocities and saving it resulted in all but first component of velocity vecto r being zero. Flag=2 was re-introduced in command line switching to prevent saving after fragmentation (as nothi ng is done with the original molecule anyway). This removed the bug completely (which is thus kind of mysterious in nature). Now, corresponding atoms in fragments have the correct velocities (also replaced hydrogens) commit c750cc774f9938a4ce5ee5ed6083cd050554830e Author: Frederik Heber Date: Tue Apr 29 14:19:51 2008 +0200 char lengths of 255 and MAXDUMMYSTRING replaced with define MAXSTRINGSIZE in molecuilder and pcp commit 451148c889a1e260d1c4a7372972a3c1e05c9c64 Author: Frederik Heber Date: Tue Apr 29 09:55:34 2008 +0200 Store/CheckAdj...() now also incorporate bond order to check against. commit 1fa5b7de584643a09dcfb4bcfcd3194ca070ffc2 Author: Frederik Heber Date: Tue Apr 29 09:55:11 2008 +0200 config file is again first argument and implemented test of interactive session commit 4885953476621842a73cecc5177c8cd1f40a0ac5 Author: Frederik Heber Date: Tue Apr 29 09:45:23 2008 +0200 changed config file to first argument again and standard config name incorporated. ./molecuilder -e elements.db is hard to scan whether elements.db is the config file or a further argument, hence switch-back to old method of having it in the first place. (this also matches all the scripts written so far again). commit 04980c7adb06383804e437abc26b93ee9a461f6c Author: Frederik Heber Date: Tue Apr 29 09:41:20 2008 +0200 bugfix: configpath and -name are not set to empty string. commit 6590bee765825bf3573feb664f40520835c1740c Author: Frederik Heber Date: Tue Apr 29 09:16:32 2008 +0200 bugfix in main: without arguments, code would crash due to access of argv[1] This bug was introduced because of the huge changes in the command line parsing. Changed the beginning if (argv >= 1) to >1 and put element db and configpath/name scan into else statement. commit 3c1dfbeb63a79308ac499024831bea130a5317f9 Author: Frederik Heber Date: Tue Apr 29 09:06:18 2008 +0200 Full test for fragmentation procedure with readin of the adjacency file. The test is still a bit of a hack (with moving BondFragment*-files and diff'ing them), but so far it works very well. A test structure is generated, till bond order 2 fragmented, the configs are moved away, fragmented again by reading adjacency, and the new configs are diff'ed against the old ones. commit b5ecd9d11046feffd27e5a7968e986cb5322b501 Author: Frederik Heber Date: Tue Apr 29 09:04:59 2008 +0200 configname is also stored in config structure, GetDefaultPath by config::configpath replaced This stores fragment and affiliated files in same dir as the config, regardless of therein contained paths and is safer and makes the tests work. commit 2910e0b93cafde370ccfe424f2452b4e74b54a83 Author: Frederik Heber Date: Tue Apr 29 08:57:59 2008 +0200 Comply with test again: help and version command options exit at once This had been changed to just flag=2 for this, as molecule and periodentafel structures were not free'd, but this broke the test, so we changed it back and added some delete()s. commit 5b15abd736e431efbf95ee359dc600e887d01a25 Author: Frederik Heber Date: Tue Apr 29 08:30:38 2008 +0200 config::Load..() now get filename instead of pointer to file, bugfix for switch structure in command line parsin g. Load..() functions RetrieveConfigPath() - the path that is given for the config file on the command line - and p ut it into config::configpath. This is necessary to allow later for a sensible storage path under fragmentation, as the old with defaultpath from the file was stupid, if the given path was wrong (whereas the config path always exists). Switch structure in parsing the command line options needed to make better use of the already present flag in or der to know when to just save and stop and when to continue to the interactive menu. commit 5550635707d249fbddac61f337f123ec13876725 Author: Frederik Heber Date: Mon Apr 28 15:53:54 2008 +0200 Atoms in the fragments in the configs are again ordered as first labeled during Bond structure recognition Due to the move to disconnected subgraph recognition an additional "layer" of molecules is inserted. The Atoms are AddCopyAtom()ed into new molecules representing each subgraph and receiving new labels thereby (even if there is just one subgraph in the end). As these labels were used in the sorted "KeySet" sets for adding atoms on the one hand, the KeySet file on the other hand however was created from the molecules directly now with labels from the topmost molecule structure ... : lines in BondFragment configs were swapped with respect to freshly fragmented and parsed from KeySet files. Do ameloriate this, the StoreFragmentFromKeySet procedure was taken out of FragmentBOSSANOVA() and up into FragmentMolecule(), where the uppermost molecular structure is accessible. At the same time, the topmost labels (via GetTrueFather) are used in the KeySets. Thus, we receive again ordered list of atoms in each fragment config and they match perfectly with those re-created from parsed keyset files (check with diff over all BondFragment*.conf*). commit c67e1673793e02762e260fdf179ea566a38cffff Author: Frederik Heber Date: Mon Apr 28 15:46:05 2008 +0200 removed some output lines (commented-out) mostly in ScanForPeriodicCorrection, CenterEdge, AddHydrogenReplacement and StoreFragmentFromKeySet commit 140e34d94a3c8db06bd911101ae23f20deb57a9e Author: Frederik Heber Date: Mon Apr 28 13:39:07 2008 +0200 FragmentMolecule(): status variable used when checking adjacency file was faulty used After the splitting up into new functions StoreAdj...() and CheckAdj...(), status was not used properly anymore. Now, it gathers per AND conjunction the status of the three steps (ill ListOfAtoms, CheckAdj, ParseKeySets). commit 10f6416d40d305bb1142dd1702e26b15d8bb910d Author: Frederik Heber Date: Mon Apr 28 13:36:11 2008 +0200 All filenames (const char *) have been transferred to defs.hpp Filenames have been transformed into #define's into order to centralise these values. Parser.hpp had these already and they were streamlined to match defs.hpp (which is now included in parser.hpp) commit b0a0c3848d8b7c7dd67aad39324d6c2a6b8f507a Author: Frederik Heber Date: Mon Apr 28 12:41:40 2008 +0200 storing and comparing Adjacency outsourced into two new functions. New functions: - StoreAdjacencyToFile(): stores the current bond structure into a file - CheckAdjacencyFileAgainstMolecule(): parses an adjacency list from a file and compares against present bond st ructure of the molecule commit 183f35941c82e11c9c474c42c5bccbe92689a8d1 Author: Frederik Heber Date: Mon Apr 28 11:22:38 2008 +0200 FragmentMolecule(): Adjacency store/check and parsing of KeySetFile incorporated - StoreFragmentFromKey_S_et() renamed - StoreFragmentFromKeySet() now does not get whole config structure as parameter but only needed IsAngstroem value - two new functions: ScanBufferIntoKeySet() - scans a text line of numbers into a KeySet deque ParseKeySetFile() - parses a file of the above lines, fills each into a KeySet and spills out fragment molecules by calling StoreFragmentFromKeySet() - FragmentMolecule(): Adjacency file written, read and checked if it matches the just created bond structure. If so, then we don't fragment again but parse the KeySetFile and reconstruct fragments thereby. commit 08f1a0a71552716eafe64ce87071d4c20b4150b9 Author: Frederik Heber Date: Mon Apr 28 11:18:10 2008 +0200 main(): thrown out unused stringstreams prefix and line commit a8aac8d768159ee96f928c92bb1fde6ab4e08835 Author: Frederik Heber Date: Mon Apr 28 09:16:42 2008 +0200 OutputConfigForListOfFragments(): various ofstream gathered into a single one: output Preparation for adding "AdjacencyFile" next commit f3cba66fdc98cfc127e0bb5bccc5ea5c320130f8 Author: Frederik Heber Date: Sun Apr 27 15:05:46 2008 +0200 forgot to commit the actual autotest files listed during last commit, that make "make check" work. commit 0ca39c907892a993150e58581896f58b0287b21f Author: Frederik Heber Date: Sun Apr 27 15:04:01 2008 +0200 Complete test kit (make check) for the three parts: pcp, molecuilder, utilites is incorporated via autotest In directory tests of each subdir there are the following files: - atlocal.in: sets some variables such as prefix and others via automake and configure for the tests - Makefile.am: Hooks for the checks and automatic generation of package.m4 - .in: Wrapper for the executable, for correct paths and so on - testsuite.at: the actual tests in a similar grammar to autoconf commit 96838df2b95a71fefc16c7500c7df703e8219638 Author: Frederik Heber Date: Sun Apr 27 15:01:06 2008 +0200 AddXYZFile(): Bugfix - if element could not be parsed (e.g. elements db was not loaded correctly) This has so far not spawned an error message, now it does and atom's element is set to hydrogen. commit 206887fd8da59e69a4f69ac80c1cc173265fc53e Author: Frederik Heber Date: Sun Apr 27 14:59:40 2008 +0200 Load/StorePeriodentafel(): filename as parameter, if NULL default name in pwd is used commit 73f80e7abed54d6843f6a2911d1e001bb32914c9 Author: Frederik Heber Date: Sun Apr 27 14:59:18 2008 +0200 new elementsdb-switch and command line options parsing parts moved around to accomodate. New switch (just sets a variable) made some moving around necessary. Elements db cannot be parsed right at the start anymore, neither the config file before the command line switches. Hence, the following is now in operation: 1. first parse through all options for stuff just setting variables, giving help et al 2. parse elements db 3. parse config file if present 4. parse again through options for those that actually operate on a given configuration or add atoms (parsing xyz) ... This was necessary, as 'make check' could not be made workable otherwise and its "bad behaviour" if the code assumes the elements.db to be in the same dir as the exe. commit cf959d5dddf3381f8d96dab490a9f29308e56d8a Author: Frederik Heber Date: Sun Apr 27 14:53:53 2008 +0200 Load/StorePeriodentafel(): filename as parameter, if NULL default name in pwd is used Filename is NULL by default or parsed on command line (new -e switch). It was necessary because of command line test (make check), as elements.db is not in the same dir. Also, opening of files is checked and a related status returned for both functions. commit dbe929ff6db6c4da014f56f595de7f279f3f76e3 Author: Frederik Heber Date: Fri Apr 25 15:54:51 2008 +0200 Huge rewrite of initial command line parsing config file argument is now the last one. Additionally, multiple command line options may be given consecutively (i.e. -t 1 1 1 -c 5 5 5), which is done via a while loop. Also, empty config files (if given filename is not present or with unknown syntax) are checked and status stored in enumerate ConfigStatus. This is used later as certain command line options only are possible if there has been read a valid configuration. commit 7151c4d1599615f43467a66e761b7bd1821684ca Author: Frederik Heber Date: Fri Apr 25 15:52:38 2008 +0200 added VERSIONSTRING commit 267e95ac6a5eb10cf7af1d9035e906fa9e6a94aa Author: Frederik Heber Date: Fri Apr 25 15:52:05 2008 +0200 LoadPeriodentafel(): no more outputs of parsed elements commit 13aab96bae88f47456abe1549668f337767064f9 Author: Frederik Heber Date: Fri Apr 25 12:29:18 2008 +0200 normal blas (e.g. prefered gotoblas) instead of gslcblas is used in linking commit 6dea43fe741fd6c97488de84672ba0db426b38da Author: Frederik Heber Date: Thu Apr 24 19:03:14 2008 +0200 ADDHYDROGEN and HAVE_DEBUG fix: config.h was not yet included Misunderstanding of DHAVE_CONFIG_H lead to the believe it would get included also automatically. Now, helpers.hpp and parser.hpp both have it included if HAVE_CONFIG_H is present. Consequently, ADDHYDROGEN and HAVE_DEBUG now work. commit a16756d3b8b3cefad05bc3fd247909f7d1f95dd4 Author: Frederik Heber Date: Thu Apr 24 19:01:39 2008 +0200 FragmentMolecule(): debug messages removed for ADDHYDROGEN commit 2cab01cf0b3736cb07613c8950af2ece0d317266 Author: Frederik Heber Date: Thu Apr 24 18:59:35 2008 +0200 AC_MSG_WARN if both optimization and debug present removed As optimization is ob by default, warning got triggered when enabling debug only already, which is nonsense. commit d3a46dd9779aed0b0c746d4835159414fe9963b7 Author: Frederik Heber Date: Thu Apr 24 15:52:02 2008 +0200 added --enable-optimization, thrown -g -O specifics out of Makefile.am's --enable-optimization is added to each configure.ac and is linked with --enable-debug (no debug and optimization at the same time, debug is normally off and -O2 on), implemented via C(XX)FLAGS Henceforth, -g, -O and -cc=... specifics are thrown out of the Makefile.am's, so that the optimiziation and debugging is streamlined throughout the whole package commit 943d02e40086a937085f077abff25299a61b3c66 Author: Frederik Heber Date: Wed Apr 23 19:33:51 2008 +0200 molecuilder reads and stored ion velocities Class atom has new variables velocity vector v and integer FixedIon. These are parse during config:load(), and stored via atom:Output() (but only if norm of v is above MYEPSILON), values are copied to son atoms/nodes in AddCopyAtom and AddHydrogenAtom (there: no fancy splitting of the vector as done with the InBondVector) commit c88cde2554898c89662be277078fc77c7d21920f Author: Frederik Heber Date: Fri Apr 18 13:26:42 2008 +0200 -initial commit -Minimum set of files needed from ESPACK SVN repository -Switch to three tantamount package parts instead of all relating to pcp (as at some time Ralf's might find inclusion as well) commit 14de4697703b4c1283d68496e457f6c1c3c794aa Author: Frederik Heber Date: Fri Apr 18 13:26:42 2008 +0200 -initial commit -Minimum set of files needed from ESPACK SVN repository -Switch to three tantamount package parts instead of all relating to pcp (as at some time Ralf's might find inclusion as well)