borisk
|
b3c7c695cd
Refactored the code related to the unimolecular reactions bringing it in line with how we test for the bimolecular case. Added three more tests to the testsuite when multiple unimolecular reactions with different rates happen simultaneously (pure unimolecular and at the surface).
|
12 年之前 |
Jeffrey Bush
|
61b7e7c77c
Updated ignore file to ignore build files and temporaries. Fixed a problem with the chkpt.c file with the new defines.
|
12 年之前 |
Jeffrey Bush
|
33ddc716ac
Fixed a minor bug in the new configure.in.
|
12 年之前 |
Jeffrey Bush
|
fbfe79173a
Changed all uses of %lld to LONG_LONG_FORMAT and surrounded all uses of checkpointing with MCELL_WITH_CHECKPOINTING. Both of these are for Windows' sake.
|
12 年之前 |
Jeffrey Bush
|
a650facdea
Updated configure.in and Makefile.am to add necessary libraries for Windows builds.
|
12 年之前 |
Jeffrey Bush
|
f60700110c
Updated the configure.in file to support many necessary things for a Windows build. Added *nix and Windows-specific configuration headers that are included automatically from config.h. Everyone needs to re-bootstrap due to the change in configure.in.
|
12 年之前 |
Jeffrey Bush
|
1c021ecece
Changed some includes to be more Windows-friendly. Removed two unused includes from init.c. Changed <sys/errono.h> to <errno.h> in mdlparse*. Also made strerror_r an emulated function on Windows instead of requiring code changes to strerror_s.
|
12 年之前 |
borisk
|
c9087b98b0
Merged with trunk.
|
12 年之前 |
Jeffrey Bush
|
a11af8af8f
Added getrusage emulation function for Windows.
|
12 年之前 |
Jeffrey Bush
|
00de074385
Added support for gethostname on Windows and use _ctime64_s for ctime_r on Windows.
|
12 年之前 |
Jeffrey Bush
|
da45717658
Using strerror_s in place of strerror_r for Windows builds. Added windows-lib.h for Windows-specific defininitions. First Windows-specific commit.
|
12 年之前 |
borisk
|
69b05d686a
We address the bug and loophole in the treatment of the timing of unimolecular reactions. Inside 'run_timestep() we set 'a->t2 = FOREVER' when we cannot find unimolecular or unimolecular at the surface reactions for the molecule 'a'. Later on we reset 'a->t2 = 0' for diffusing molecules that have reactions with the wall. There was a bug in the reset code. The bug showed itself when molecule as a result of unimolecular reaction changes it's orientation, say from S{-1} to S{1}. If there are no unimolecular reactions for S{1} the 't2' is set to FOREVER. If there is a reaction such that S{1} + B -> S{-1} that FOREVER timing was preserved and gradually all molecules S{-1} will get FOREVER timing and the unimolecular reactions for S{-1} will stop. Also we never address the case for static molecules with the above described conditions. The surface molecule may have several reactions with different kinetics for different orientations, so we cannot just keep the same time 't2' when the molecule switch orientation as a result of reaction. We now set 't2' for this molecule as 't2 = 0' and force to recheck it's real timing inside 'run_timestep()' again, thus fixing the loophole. Thanks Markus for the pointing to this loophole and Jacob for discovering the bug.
|
12 年之前 |
borisk
|
e14aca5bae
Merged with trunk.
|
12 年之前 |
borisk
|
40d7286167
We address the bug and loophole in the treatment of the timing of unimolecular reactions. Inside 'run_timestep() we set 'a->t2 = FOREVER' when we cannot find unimolecular or unimolecular at the surface reactions for the molecule 'a'. Later on we reset 'a->t2 = 0' for diffusing molecules that have reactions with the wall. There was a bug in the reset code. The bug showed itself when molecule as a result of unimolecular reaction changes it's orientation, say from S{-1} to S{1}. If there are no unimolecular reactions for S{1} the 't2' is set to FOREVER. If there is a reaction such that S{1} + B -> S{-1} that FOREVER timing was preserved and gradually all molecules S{-1} will get FOREVER timing and the unimolecular reactions for S{-1} will stop. Also we never address the case for static molecules with the above described conditions. The surface molecule may have several reactions with different kinetics for different orientations, so we cannot just keep the same time 't2' when the molecule switch orientation as a result of reaction. We now set 't2' for this molecule as 't2 = 0' and force to recheck it's real timing inside 'run_timestep()' again, thus fixing the loophole. Thanks Markus for the pointing to this loophole.
|
12 年之前 |
Tom Bartol
|
47ff3715be
Add a new viz output mode, "MODE = CELLBLENDER". This mode generates a
|
12 年之前 |
borisk
|
c898551111
Merged with trunk
|
12 年之前 |
borisk
|
53d6c0e52c
Default commit
|
12 年之前 |
borisk
|
72e95f63cd
Fixed a bug in the trimolecular reactions code pointed to by Markus - at one line used a logical addition instead of binary one.
|
12 年之前 |
borisk
|
c6a5117278
Fixed a bug in the trimolecular reactions code pointed to by Markus - at one line used a logical addition instead of binary one.
|
12 年之前 |
Markus Dittrich
|
2738610486
Updated the manual.
|
12 年之前 |
borisk
|
fce64c2066
Merged with a trunk.
|
12 年之前 |
borisk
|
fe061507cb
Implemented small code change that shortens the function by about 40 lines and improves clarity of the code. Thanks Markus for the suggestion.
|
12 年之前 |
borisk
|
2b73e6fdae
Implemented small code change that shortens the function by about 40 lines and improves clarity of the code. Thanks Markus for the suggestion.
|
12 年之前 |
borisk
|
7d79bf11aa
Added test case in the testsuite that covers the bug with checkpointing and unimoleclar reaction with variable rates.
|
12 年之前 |
borisk
|
7681677079
Added test case in the testsuite that covers the bug with checkpointing and unimoleclar reaction with variable rates.
|
12 年之前 |
borisk
|
08a9cfbae5
Removed some leftover debugging messages - thanks Markus for pointing.
|
12 年之前 |
borisk
|
6baf3d441f
Removed some leftover debugging messages - thanks Markus for pointing.
|
12 年之前 |
borisk
|
c5e36be693
Jun Ma recently reported a bug in the code that represents itself as molecule's negative lifetime. He developed a very complex model and checkpointed at 174115 and later ran 1000 iterations more. That's where the negative lifetimes appear. After careful study of the model and the code I realized that the bug showed up under the combination of two simultaneous conditions: 1) checkpointing, 2) unimolecular reactions with variable rates. It appeared that variable rates files were not properly read and molecule's scheduling times were not properly set up. Applied code changes fix the problem.
|
12 年之前 |
borisk
|
b7730d4b87
Jun Ma recently reported a bug in the code that represents itself as molecule's negative lifetime. He developed a very complex model and checkpointed at 174115 and later ran 1000 iterations more. That's where the negative lifetimes appear. After careful study of the model and the code I realized that the bug showed up under the combination of two simultaneous conditions: 1) checkpointing, 2) unimolecular reactions with variable rates. It appeared that variable rates files were not properly read and molecule's scheduling times were not properly set up. Applied code changes fix the problem.
|
12 年之前 |
Boris Kaminsky
|
6f842a7d08
Merged with trunk
|
13 年之前 |