diff --git a/regtest/dimred/rt-mds/analysis.0.embed.reference b/regtest/dimred/rt-mds/analysis.0.embed.reference index bfcd2c1e88ce54595c66627548ecfb3cf83829c6..3ebfef2be81d00feef14247ece1453aaf9d7259d 100644 --- a/regtest/dimred/rt-mds/analysis.0.embed.reference +++ b/regtest/dimred/rt-mds/analysis.0.embed.reference @@ -1,698 +1,698 @@ DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=650626174834469268094976.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0873 mds.2=0.0013 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7551 c1.moment-3=1.3322 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=3443064697932843889721344.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0535 mds.2=0.0044 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7434 c1.moment-3=1.3003 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=4334990767809816147525632.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0150 mds.2=0.0044 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7333 c1.moment-3=1.2632 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1642551053927491148185600.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0136 mds.2=0.0019 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7283 c1.moment-3=1.2349 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=565077236443374117978112.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0308 mds.2=-0.0012 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7268 c1.moment-3=1.2175 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=506902826865531421720576.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0355 mds.2=-0.0018 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7262 c1.moment-3=1.2128 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=3497441683667193365004288.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0090 mds.2=-0.0015 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7327 c1.moment-3=1.2385 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=5816989471131786348068864.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0145 mds.2=0.0004 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7371 c1.moment-3=1.2616 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=5197629206541778607407104.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0191 mds.2=0.0022 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7366 c1.moment-3=1.2666 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=22568578815140474208124928.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0278 mds.2=0.0015 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7394 c1.moment-3=1.2748 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=8891751619370481308663808.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0091 mds.2=-0.0004 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7365 c1.moment-3=1.2562 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=145469732262582499147776.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0359 mds.2=-0.0012 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7255 c1.moment-3=1.2126 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=67243488566443176361984.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0540 mds.2=0.0004 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7193 c1.moment-3=1.1955 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=991674944473569693794304.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0322 mds.2=-0.0034 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7286 c1.moment-3=1.2156 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=433704577708501378269184.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0205 mds.2=-0.0150 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7429 c1.moment-3=1.2239 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=58924815689464923815936.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0282 mds.2=-0.0289 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7542 c1.moment-3=1.2128 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=28876419368888716754944.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0530 mds.2=-0.0358 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7544 c1.moment-3=1.1871 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=29493206461009996283904.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0769 mds.2=-0.0312 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7438 c1.moment-3=1.1652 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=15523379316519734345728.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0893 mds.2=-0.0259 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7355 c1.moment-3=1.1546 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=6036949107489532542976.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0697 mds.2=-0.0246 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7393 c1.moment-3=1.1739 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=6805982676529049501696.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 -REMARK mds.1=-0.0301 mds.2=-0.0196 +REMARK mds.1=-0.0302 mds.2=-0.0196 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7448 c1.moment-3=1.2133 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=224283114659648425164800.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0093 mds.2=-0.0072 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7430 c1.moment-3=1.2547 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1937631236154971427700736.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0274 mds.2=0.0009 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7400 c1.moment-3=1.2742 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=8943884514170369755578368.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0301 mds.2=0.0016 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7400 c1.moment-3=1.2770 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1818542782073875176882176.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0265 mds.2=-0.0033 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7438 c1.moment-3=1.2723 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=356284804122361993363456.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0433 mds.2=-0.0053 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7501 c1.moment-3=1.2879 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=740928158795493248335872.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0514 mds.2=-0.0019 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7489 c1.moment-3=1.2967 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=3971376819483128291655680.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0222 mds.2=0.0031 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7365 c1.moment-3=1.2698 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=3616045831357711704391680.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0129 mds.2=0.0061 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7245 c1.moment-3=1.2366 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=866118050097568367509504.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0322 mds.2=0.0084 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7172 c1.moment-3=1.2186 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=473876430918082860417024.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0355 mds.2=0.0080 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7168 c1.moment-3=1.2153 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=549108949631639043964928.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0337 mds.2=0.0067 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7185 c1.moment-3=1.2168 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=714866179522068016529408.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0308 mds.2=0.0047 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7211 c1.moment-3=1.2191 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1514315762407424940572672.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0253 mds.2=0.0016 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7255 c1.moment-3=1.2235 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1741401785128748918505472.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0132 mds.2=-0.0021 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7323 c1.moment-3=1.2343 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=3707685932716769910194176.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0040 mds.2=-0.0031 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7377 c1.moment-3=1.2506 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=5279612145243834875379712.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0107 mds.2=0.0011 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7354 c1.moment-3=1.2582 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=14648991633879816569094144.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0299 mds.2=0.0060 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7357 c1.moment-3=1.2780 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=101745406227893881592086528.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0540 mds.2=0.0070 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7410 c1.moment-3=1.3015 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=77977698769596315733065728.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0650 mds.2=0.0039 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7468 c1.moment-3=1.3114 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=5438198764112726743580672.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0415 mds.2=0.0025 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7421 c1.moment-3=1.2882 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1122421932113435130068992.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0074 mds.2=0.0033 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7325 c1.moment-3=1.2555 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1623375579255821794541568.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0185 mds.2=0.0059 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7232 c1.moment-3=1.2312 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=824284132438079344476160.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0413 mds.2=0.0073 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7158 c1.moment-3=1.2096 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=418023780265421327826944.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0548 mds.2=0.0074 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7123 c1.moment-3=1.1966 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=524201540254286764572672.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0385 mds.2=0.0041 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7197 c1.moment-3=1.2114 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=255645304728742904463360.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0383 mds.2=-0.0006 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7243 c1.moment-3=1.2104 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=80831060875928311693312.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0584 mds.2=-0.0008 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7192 c1.moment-3=1.1910 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=410072896508362208837632.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0584 mds.2=0.0023 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7162 c1.moment-3=1.1918 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=473315368593257205334016.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0553 mds.2=0.0090 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7105 c1.moment-3=1.1965 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=49342818148888732499968.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0772 mds.2=0.0146 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6995 c1.moment-3=1.1768 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=71439214621479799881728.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0757 mds.2=0.0157 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6988 c1.moment-3=1.1785 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=372382770456105985245184.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0644 mds.2=0.0144 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7030 c1.moment-3=1.1891 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=396750501333421147553792.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0816 mds.2=0.0141 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6988 c1.moment-3=1.1724 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=194367523462455551328256.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.1045 mds.2=0.0148 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6922 c1.moment-3=1.1504 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=265390023546441746612224.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0867 mds.2=0.0111 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7004 c1.moment-3=1.1667 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=417842650383208029356032.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0365 mds.2=0.0014 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7228 c1.moment-3=1.2126 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=130034479906962406375424.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0113 mds.2=-0.0067 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7431 c1.moment-3=1.2567 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=453748863537616517070848.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0272 mds.2=-0.0074 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7479 c1.moment-3=1.2718 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=2549987501327281773608960.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0381 mds.2=-0.0012 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7448 c1.moment-3=1.2840 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=3357671899518696282914816.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0548 mds.2=0.0021 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7459 c1.moment-3=1.3010 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=2973694890310422329556992.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0470 mds.2=0.0012 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7447 c1.moment-3=1.2933 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=288602953154320790454272.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0227 mds.2=-0.0019 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7414 c1.moment-3=1.2690 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1760887739729704734687232.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0132 mds.2=-0.0022 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7392 c1.moment-3=1.2597 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1526973208100442807992320.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0040 mds.2=0.0004 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7343 c1.moment-3=1.2515 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=375263178685270183641088.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0045 mds.2=0.0008 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7317 c1.moment-3=1.2434 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=232661556808622295482368.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0145 mds.2=0.0006 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7293 c1.moment-3=1.2337 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=507064184978749788258304.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0116 mds.2=0.0025 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7282 c1.moment-3=1.2370 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1128952088522002253479936.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0031 mds.2=0.0044 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7286 c1.moment-3=1.2457 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1197960641606570746052608.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0148 mds.2=0.0086 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7216 c1.moment-3=1.2355 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=625774095016588059082752.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0318 mds.2=0.0109 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7149 c1.moment-3=1.2196 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=364912544013506169536512.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0166 mds.2=0.0078 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7218 c1.moment-3=1.2336 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1649391353916835862937600.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0154 mds.2=0.0036 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7342 c1.moment-3=1.2633 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=11346816644974575838298112.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0451 mds.2=0.0018 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7437 c1.moment-3=1.2915 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=20791509453694539808112640.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0364 mds.2=0.0021 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7411 c1.moment-3=1.2832 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1867515982473692874539008.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0125 mds.2=0.0036 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7335 c1.moment-3=1.2606 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=11344083134102028704284672.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0330 mds.2=0.0045 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7379 c1.moment-3=1.2806 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=120911330589421810499977216.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0605 mds.2=0.0048 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7448 c1.moment-3=1.3072 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=40351160276202809800523776.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0417 mds.2=0.0041 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7406 c1.moment-3=1.2889 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=9235968903630373689229312.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0115 mds.2=0.0011 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7356 c1.moment-3=1.2590 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=15198595282354971818852352.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0257 mds.2=-0.0018 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7421 c1.moment-3=1.2719 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=14695620601365390340128768.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0451 mds.2=-0.0029 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7483 c1.moment-3=1.2904 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=3504618985646781185916928.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0387 mds.2=-0.0032 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7469 c1.moment-3=1.2841 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1958037545372794977517568.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0254 mds.2=-0.0017 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7420 c1.moment-3=1.2716 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=7729740074168141073088512.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0311 mds.2=-0.0001 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7418 c1.moment-3=1.2775 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=26429041345273132897796096.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0448 mds.2=0.0006 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7448 c1.moment-3=1.2909 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=37403428414373558822633472.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0499 mds.2=0.0020 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7448 c1.moment-3=1.2962 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=69071824065210548899282944.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0543 mds.2=0.0037 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7443 c1.moment-3=1.3009 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=28746486049325375245254656.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0486 mds.2=0.0054 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7412 c1.moment-3=1.2959 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=5138199027537960106983424.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0459 mds.2=0.0051 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7407 c1.moment-3=1.2932 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=20730130763570579884736512.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0715 mds.2=-0.0001 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7524 c1.moment-3=1.3166 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=10053248420830524810985472.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0764 mds.2=-0.0063 REMARK ARG=c1.moment-2,c1.moment-3 -REMARK c1.moment-2=0.7596 c1.moment-3=1.3196 +REMARK c1.moment-2=0.7597 c1.moment-3=1.3196 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=2341097486254890020765696.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0603 mds.2=-0.0119 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7609 c1.moment-3=1.3027 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1801241546807460694589440.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0378 mds.2=-0.0153 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7583 c1.moment-3=1.2800 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=2623886374903733202976768.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0214 mds.2=-0.0124 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7512 c1.moment-3=1.2649 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1540127025264497029808128.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0063 mds.2=-0.0091 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7441 c1.moment-3=1.2513 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=761250478060893041065984.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0095 mds.2=-0.0016 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7327 c1.moment-3=1.2380 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=815550859201229044580352.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0259 mds.2=0.0036 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7234 c1.moment-3=1.2235 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=1031052805964853080489984.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0234 mds.2=0.0061 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7217 c1.moment-3=1.2265 END DESCRIPTION: analysis data from calculation done at time 5.000000 -REMARK WEIGHT=828970472636431535702016.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0012 mds.2=0.0060 REMARK ARG=c1.moment-2,c1.moment-3 diff --git a/regtest/dimred/rt-mds/analysis.0.list_embed.reference b/regtest/dimred/rt-mds/analysis.0.list_embed.reference index ce29c25f6a5ecf50ae070443c00face1089a9d06..185b19ed5558aa853b2fd67022b2c0c1250983a2 100644 --- a/regtest/dimred/rt-mds/analysis.0.list_embed.reference +++ b/regtest/dimred/rt-mds/analysis.0.list_embed.reference @@ -19,7 +19,7 @@ -0.0769 -0.0312 -0.0893 -0.0259 -0.0697 -0.0246 - -0.0301 -0.0196 + -0.0302 -0.0196 0.0093 -0.0072 0.0274 0.0009 0.0301 0.0016 diff --git a/regtest/dimred/rt-mds/embed.reference b/regtest/dimred/rt-mds/embed.reference index 8ecbcfdae735a3b83db48ea0b5db1d88179d9a6f..336cec6f8141b43fd3bbf4c0f9d630e6cf3550ad 100644 --- a/regtest/dimred/rt-mds/embed.reference +++ b/regtest/dimred/rt-mds/embed.reference @@ -1,698 +1,698 @@ DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0008 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0594 mds.2=0.0053 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7340 c1.moment-3=1.2672 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0012 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0683 mds.2=0.0034 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7371 c1.moment-3=1.2758 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0004 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0705 mds.2=0.0006 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7401 c1.moment-3=1.2777 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0010 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0729 mds.2=-0.0019 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7428 c1.moment-3=1.2796 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0022 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0874 mds.2=-0.0069 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7497 c1.moment-3=1.2934 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0019 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0961 mds.2=-0.0095 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7533 c1.moment-3=1.3018 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0023 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0867 mds.2=-0.0062 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7489 c1.moment-3=1.2928 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0030 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0719 mds.2=-0.0008 REMARK ARG=c1.moment-2,c1.moment-3 -REMARK c1.moment-2=0.7417 c1.moment-3=1.2788 +REMARK c1.moment-2=0.7417 c1.moment-3=1.2789 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0118 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0575 mds.2=0.0031 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7360 c1.moment-3=1.2651 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0063 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0552 mds.2=0.0034 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7354 c1.moment-3=1.2628 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0022 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0682 mds.2=-0.0002 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7405 c1.moment-3=1.2753 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0029 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0781 mds.2=-0.0024 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7440 c1.moment-3=1.2847 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0010 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0785 mds.2=-0.0025 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7441 c1.moment-3=1.2852 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0004 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0763 mds.2=-0.0027 REMARK ARG=c1.moment-2,c1.moment-3 -REMARK c1.moment-2=0.7441 c1.moment-3=1.2829 +REMARK c1.moment-2=0.7441 c1.moment-3=1.2830 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0013 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0755 mds.2=-0.0041 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7454 c1.moment-3=1.2820 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0069 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0792 mds.2=-0.0069 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7486 c1.moment-3=1.2853 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0096 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0778 mds.2=-0.0062 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7477 c1.moment-3=1.2840 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0076 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0727 mds.2=-0.0025 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7434 c1.moment-3=1.2795 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0143 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0726 mds.2=0.0014 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7396 c1.moment-3=1.2798 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0302 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0756 mds.2=0.0030 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7384 c1.moment-3=1.2830 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0171 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0821 mds.2=0.0017 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7405 c1.moment-3=1.2893 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0013 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0816 mds.2=0.0001 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7420 c1.moment-3=1.2886 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0167 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0774 mds.2=0.0008 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7407 c1.moment-3=1.2845 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0234 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0766 mds.2=0.0008 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7407 c1.moment-3=1.2837 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0171 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0838 mds.2=-0.0005 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7429 c1.moment-3=1.2906 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0265 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0931 mds.2=-0.0016 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7452 c1.moment-3=1.2997 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0521 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0936 mds.2=-0.0010 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7446 c1.moment-3=1.3004 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0504 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0923 mds.2=-0.0009 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7443 c1.moment-3=1.2990 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0443 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0906 mds.2=-0.0008 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7440 c1.moment-3=1.2974 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0270 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0706 mds.2=0.0025 REMARK ARG=c1.moment-2,c1.moment-3 -REMARK c1.moment-2=0.7382 c1.moment-3=1.2780 +REMARK c1.moment-2=0.7382 c1.moment-3=1.2779 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0120 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0664 mds.2=0.0050 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7352 c1.moment-3=1.2741 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0517 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0901 mds.2=0.0019 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7412 c1.moment-3=1.2972 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0821 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.1059 mds.2=-0.0015 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7467 c1.moment-3=1.3125 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0206 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0917 mds.2=0.0006 REMARK ARG=c1.moment-2,c1.moment-3 -REMARK c1.moment-2=0.7428 c1.moment-3=1.2986 +REMARK c1.moment-2=0.7428 c1.moment-3=1.2987 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0206 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0876 mds.2=0.0021 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7407 c1.moment-3=1.2948 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0207 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.1008 mds.2=-0.0001 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7446 c1.moment-3=1.3076 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0270 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0955 mds.2=-0.0014 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7452 c1.moment-3=1.3022 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0171 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0858 mds.2=-0.0018 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7444 c1.moment-3=1.2925 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0345 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0894 mds.2=-0.0005 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7436 c1.moment-3=1.2963 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0819 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0922 mds.2=0.0014 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7420 c1.moment-3=1.2992 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.1159 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0917 mds.2=0.0010 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7423 c1.moment-3=1.2987 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0266 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0925 mds.2=-0.0043 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7477 c1.moment-3=1.2989 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0072 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0967 mds.2=-0.0102 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7541 c1.moment-3=1.3023 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0358 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.1073 mds.2=-0.0096 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7548 c1.moment-3=1.3129 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0264 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.1065 mds.2=-0.0047 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7499 c1.moment-3=1.3126 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0087 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0935 mds.2=-0.0003 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7439 c1.moment-3=1.3003 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0055 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0668 mds.2=0.0049 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7353 c1.moment-3=1.2745 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0047 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 -REMARK mds.1=0.0411 mds.2=0.0087 +REMARK mds.1=0.0410 mds.2=0.0086 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7284 c1.moment-3=1.2494 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0049 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0264 mds.2=0.0110 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7242 c1.moment-3=1.2352 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0014 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0254 mds.2=0.0125 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7226 c1.moment-3=1.2344 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0015 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0503 mds.2=0.0085 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7297 c1.moment-3=1.2586 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0025 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0855 mds.2=0.0007 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7419 c1.moment-3=1.2925 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0045 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0975 mds.2=-0.0028 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7469 c1.moment-3=1.3039 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0336 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0983 mds.2=-0.0035 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7477 c1.moment-3=1.3047 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0570 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0997 mds.2=-0.0044 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7487 c1.moment-3=1.3059 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0021 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0877 mds.2=-0.0021 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7449 c1.moment-3=1.2944 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0002 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0501 mds.2=0.0053 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7328 c1.moment-3=1.2580 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0004 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0104 mds.2=0.0140 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7192 c1.moment-3=1.2197 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0009 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0199 mds.2=0.0221 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7074 c1.moment-3=1.1907 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0004 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0416 mds.2=0.0277 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6990 c1.moment-3=1.1698 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0688 mds.2=0.0338 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6895 c1.moment-3=1.1436 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0858 mds.2=0.0354 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6858 c1.moment-3=1.1269 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0897 mds.2=0.0313 REMARK ARG=c1.moment-2,c1.moment-3 -REMARK c1.moment-2=0.6894 c1.moment-3=1.1226 +REMARK c1.moment-2=0.6894 c1.moment-3=1.1225 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0920 mds.2=0.0254 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6950 c1.moment-3=1.1195 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.1168 mds.2=0.0227 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6945 c1.moment-3=1.0946 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0001 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.1447 mds.2=0.0227 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6910 c1.moment-3=1.0669 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0004 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.1636 mds.2=0.0221 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6892 c1.moment-3=1.0481 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0011 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.1461 mds.2=0.0182 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6953 c1.moment-3=1.0650 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0004 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.1212 mds.2=0.0139 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7027 c1.moment-3=1.0891 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0005 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0775 mds.2=0.0056 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7164 c1.moment-3=1.1314 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0004 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0008 mds.2=-0.0041 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7358 c1.moment-3=1.2063 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0007 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0469 mds.2=-0.0038 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7415 c1.moment-3=1.2537 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0074 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0771 mds.2=-0.0004 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7419 c1.moment-3=1.2840 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0384 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0917 mds.2=0.0005 REMARK ARG=c1.moment-2,c1.moment-3 -REMARK c1.moment-2=0.7428 c1.moment-3=1.2986 +REMARK c1.moment-2=0.7428 c1.moment-3=1.2987 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0153 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0656 mds.2=0.0042 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7359 c1.moment-3=1.2732 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0016 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0034 mds.2=0.0115 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7200 c1.moment-3=1.2057 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0006 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0901 mds.2=0.0141 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7064 c1.moment-3=1.1200 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0005 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.1784 mds.2=0.0069 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7024 c1.moment-3=1.0315 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0002 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.2253 mds.2=-0.0077 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7109 c1.moment-3=0.9832 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0001 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.2372 mds.2=-0.0248 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7264 c1.moment-3=0.9692 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.2415 mds.2=-0.0448 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7456 c1.moment-3=0.9624 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.2562 mds.2=-0.0539 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7529 c1.moment-3=0.9466 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.2901 mds.2=-0.0433 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7381 c1.moment-3=0.9144 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.3173 mds.2=-0.0215 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7130 c1.moment-3=0.8902 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.3117 mds.2=0.0096 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6829 c1.moment-3=0.8996 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.2787 mds.2=0.0317 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6651 c1.moment-3=0.9352 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.2319 mds.2=0.0372 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.6656 c1.moment-3=0.9823 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.1897 mds.2=0.0305 REMARK ARG=c1.moment-2,c1.moment-3 -REMARK c1.moment-2=0.6776 c1.moment-3=1.0233 +REMARK c1.moment-2=0.6775 c1.moment-3=1.0233 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0001 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.1592 mds.2=0.0142 REMARK ARG=c1.moment-2,c1.moment-3 -REMARK c1.moment-2=0.6975 c1.moment-3=1.0515 +REMARK c1.moment-2=0.6975 c1.moment-3=1.0514 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 -REMARK mds.1=-0.1211 mds.2=-0.0049 +REMARK mds.1=-0.1212 mds.2=-0.0049 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7213 c1.moment-3=1.0868 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0960 mds.2=-0.0150 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7345 c1.moment-3=1.1105 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0001 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0842 mds.2=-0.0162 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7372 c1.moment-3=1.1221 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0001 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0813 mds.2=-0.0187 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7401 c1.moment-3=1.1246 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0823 mds.2=-0.0193 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7406 c1.moment-3=1.1235 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0773 mds.2=-0.0179 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7398 c1.moment-3=1.1287 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0621 mds.2=-0.0202 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7440 c1.moment-3=1.1435 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0449 mds.2=-0.0215 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7475 c1.moment-3=1.1604 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0269 mds.2=-0.0307 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7589 c1.moment-3=1.1770 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0000 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=-0.0075 mds.2=-0.0368 REMARK ARG=c1.moment-2,c1.moment-3 REMARK c1.moment-2=0.7673 c1.moment-3=1.1955 END DESCRIPTION: analysis data from calculation done at time 10.000000 -REMARK WEIGHT=0.0002 +REMARK WEIGHT=1.0000 REMARK PROPERTIES=mds.1,mds.2 REMARK mds.1=0.0266 mds.2=-0.0342 REMARK ARG=c1.moment-2,c1.moment-3 diff --git a/regtest/dimred/rt-mds/list_embed.reference b/regtest/dimred/rt-mds/list_embed.reference index 2f4fb6096a9baef0d55b0c24a64cc504a1b9021a..b24c465dfceac9021d1e5b3dec7800870f408522 100644 --- a/regtest/dimred/rt-mds/list_embed.reference +++ b/regtest/dimred/rt-mds/list_embed.reference @@ -46,7 +46,7 @@ 0.1065 -0.0047 0.0935 -0.0003 0.0668 0.0049 - 0.0411 0.0087 + 0.0410 0.0086 0.0264 0.0110 0.0254 0.0125 0.0503 0.0085 @@ -88,7 +88,7 @@ -0.2319 0.0372 -0.1897 0.0305 -0.1592 0.0142 - -0.1211 -0.0049 + -0.1212 -0.0049 -0.0960 -0.0150 -0.0842 -0.0162 -0.0813 -0.0187 diff --git a/regtest/dimred/rt-mds/plumed.dat b/regtest/dimred/rt-mds/plumed.dat index 1c63ced777d2fdf193f3b62edd3ccae373a17bd9..e74a9549425442c105389e8ab42cd2f853d02273 100755 --- a/regtest/dimred/rt-mds/plumed.dat +++ b/regtest/dimred/rt-mds/plumed.dat @@ -17,7 +17,7 @@ UPPER_WALLS ARG=d7 AT=2.0 KAPPA=100. COORDINATIONNUMBER SPECIES=1-7 MOMENTS=2-3 SWITCH={RATIONAL R_0=1.5 NN=8 MM=16} LABEL=c1 -oo: EUCLIDEAN_DISSIMILARITIES ARG=c1.moment-2,c1.moment-3 STRIDE=10 RUN=1000 REWEIGHT_TEMP=0.1 TEMP=0.2 +oo: EUCLIDEAN_DISSIMILARITIES ARG=c1.moment-2,c1.moment-3 STRIDE=10 RUN=1000 CLASSICAL_MDS ... USE_OUTPUT_DATA_FROM=oo diff --git a/src/analysis/AnalysisBase.h b/src/analysis/AnalysisBase.h index 2717ce3873b9b40a189d31367f997ba9e3bb319e..7893e9782f788422f5b6e9af7af06c9227c18639 100644 --- a/src/analysis/AnalysisBase.h +++ b/src/analysis/AnalysisBase.h @@ -82,7 +82,7 @@ public: /// Get the ith data point virtual void getDataPoint( const unsigned& idata, std::vector<double>& point, double& weight ) const ; /// Get a reference configuration (in dimensionality reduction this returns the projection) - virtual ReferenceConfiguration* getReferenceConfiguration( const unsigned& idata, bool& isprojection ); + virtual ReferenceConfiguration* getReferenceConfiguration( const unsigned& idata ); /// Get the input configuration (in dimensionality reduction this returns the high dimensional configuration) virtual ReferenceConfiguration* getInputReferenceConfiguration( const unsigned& idata ); /// This actually performs the analysis @@ -159,8 +159,8 @@ void AnalysisBase::getDataPoint( const unsigned& idata, std::vector<double>& poi } inline -ReferenceConfiguration* AnalysisBase::getReferenceConfiguration( const unsigned& idata, bool& isprojection ){ - return mydata->getReferenceConfiguration( idata, isprojection ); +ReferenceConfiguration* AnalysisBase::getReferenceConfiguration( const unsigned& idata ){ + return mydata->getReferenceConfiguration( idata ); } inline diff --git a/src/analysis/AnalysisWithDataCollection.cpp b/src/analysis/AnalysisWithDataCollection.cpp index 61ddf9edde9f69406c4841ed6dd0324f64f81d56..1d3586edca0cb492294a2a2219eb75a838517fd2 100644 --- a/src/analysis/AnalysisWithDataCollection.cpp +++ b/src/analysis/AnalysisWithDataCollection.cpp @@ -36,7 +36,10 @@ void AnalysisWithDataCollection::registerKeywords( Keywords& keys ){ AnalysisBase::registerKeywords( keys ); keys.use("ARG"); keys.reset_style("ARG","atoms-1"); keys.add("atoms-1","ATOMS","the atoms whose positions we are tracking for the purpose of analysing the data"); - keys.add("hidden","METRIC","how are we measuring the distances between configurations. If you have only arguments this will by default be the euclidean metric. You must specify a metric if you are analysing atoms"); + keys.add("hidden","METRIC","how are we measuring the distances between configurations. If you have only arguments this will by default be the euclidean " + "metric. You must specify a metric if you are analysing atoms. You can choose any of the metrics described in the part of the " + "manual on \\ref dists. If your metric involves multiple different blocks of atoms then you can use repeated ATOMS keywords " + "i.e. ATOMS1, ATOMS2 etc. You can also add additional information on your metric in this command."); keys.add("atoms-1","STRIDE","the frequency with which data should be stored for analysis. By default data is collected on every step"); keys.add("atoms-1","RUN","the frequency with which to run the analysis algorithms."); keys.addFlag("USE_ALL_DATA",false,"just analyse all the data in the trajectory. This option should be used in tandem with ATOMS/ARG + STRIDE"); @@ -75,21 +78,38 @@ old_norm(0.0) // we must collect data from the trajectory } else { // Get information on numbers of atoms and argument names - std::vector<AtomNumber> atom_numbers; std::vector<std::string> argument_names( getNumberOfArguments() ); + std::vector<std::string> argument_names( getNumberOfArguments() ); for(unsigned i=0;i<getNumberOfArguments();++i) argument_names[i]=getPntrToArgument(i)->getName(); - + if( getNumberOfArguments()>0 ) mypdb.addArgumentNames( argument_names ); // Read in information on the metric that is being used in this analysis object - parse("METRIC",metricname); - if( metricname.length()==0 ) metricname="EUCLIDEAN"; + std::string metrictmp; parse("METRIC",metrictmp); + if( metrictmp.length()==0 ){ + metricname="EUCLIDEAN"; + } else { + std::vector<std::string> metricwords = Tools::getWords( metrictmp ); + metricname=metricwords[0]; metricwords.erase(metricwords.begin()); + mypdb.addRemark( metricwords ); + } ReferenceConfiguration* checkref=metricRegister().create<ReferenceConfiguration>( metricname ); // Check if we should read atoms ReferenceAtoms* hasatoms=dynamic_cast<ReferenceAtoms*>( checkref ); if( hasatoms ){ - parseAtomList("ATOMS",atom_numbers); requestAtoms(atom_numbers); - if( atom_numbers.size()==0 ) error("no atom positions have been specified in input"); - log.printf(" monitoring positions of atoms "); - for(unsigned i=0;i<atom_numbers.size();++i) log.printf("%d ",atom_numbers[i].serial() ); - log.printf("\n"); + std::vector<AtomNumber> atom_numbers; parseAtomList("ATOMS",atom_numbers); + if( atom_numbers.size()>0 ){ + log.printf(" monitoring positions of atoms "); + for(unsigned i=0;i<atom_numbers.size();++i) log.printf("%d ",atom_numbers[i].serial() ); + log.printf("\n"); mypdb.addBlockEnd( atom_numbers.size() ); + } else { + std::vector<AtomNumber> tmpatoms; mypdb.addBlockEnd(0); + for(unsigned i=1;;++i){ + parseAtomList("ATOMS",i,tmpatoms); + if( i==1 && tmpatoms.size()==0 ) error("no atom positions have been specified in input"); + else if( tmpatoms.size()==0 ) break; + for(unsigned j=0;j<tmpatoms.size();++j) atom_numbers.push_back( tmpatoms[j] ); + mypdb.addBlockEnd( atom_numbers.size() ); + } + } + requestAtoms(atom_numbers); mypdb.setAtomNumbers( atom_numbers ); } // Check if we should read arguments ReferenceArguments* hasargs=dynamic_cast<ReferenceArguments*>( checkref ); @@ -107,10 +127,7 @@ old_norm(0.0) // Setup everything given the ammount of data that we will have in each analysis if( freq%getStride()!= 0 ) error("Frequncy of running is not a multiple of the stride"); unsigned ndata=freq/getStride(); data.resize(ndata); logweights.resize( ndata ); - for(unsigned i=0;i<ndata;++i){ - data[i]=metricRegister().create<ReferenceConfiguration>( metricname ); - data[i]->setNamesAndAtomNumbers( atom_numbers, argument_names ); - } + for(unsigned i=0;i<ndata;++i) data[i]=metricRegister().create<ReferenceConfiguration>( metricname ); log.printf(" running analysis every %u steps\n",freq); // Check if we are doing block averaging parseFlag("NOMEMORY",nomemory); @@ -189,10 +206,10 @@ void AnalysisWithDataCollection::readCheckPointFile( const std::string& filename if(fp!=NULL){ bool do_read=true, first=true; while (do_read) { - PDB mypdb; - do_read=mypdb.readFromFilepointer(fp,plumed.getAtoms().usingNaturalUnits(),0.1/atoms.getUnits().getLength()); + PDB tpdb; + do_read=tpdb.readFromFilepointer(fp,plumed.getAtoms().usingNaturalUnits(),0.1/atoms.getUnits().getLength()); if(do_read){ - data[idata]->set( mypdb ); + data[idata]->set( tpdb ); data[idata]->parse("TIME",tstep); if( !first && ((tstep-oldtstep) - getStride()*plumed.getAtoms().getTimeStep())>plumed.getAtoms().getTimeStep() ){ error("frequency of data storage in " + filename + " is not equal to frequency of data storage plumed.dat file"); @@ -229,9 +246,9 @@ void AnalysisWithDataCollection::getDataPoint( const unsigned& idat, std::vector } } -ReferenceConfiguration* AnalysisWithDataCollection::getReferenceConfiguration( const unsigned& idat, bool& isprojection ){ - if( !mydata ){ plumed_dbg_assert( idat<data.size() ); isprojection=false; return data[idat]; } - return AnalysisBase::getReferenceConfiguration( idat, isprojection ); +ReferenceConfiguration* AnalysisWithDataCollection::getReferenceConfiguration( const unsigned& idat ){ + if( !mydata ){ plumed_dbg_assert( idat<data.size() ); return data[idat]; } + return AnalysisBase::getReferenceConfiguration( idat ); } ReferenceConfiguration* AnalysisWithDataCollection::getInputReferenceConfiguration( const unsigned& idat ){ @@ -259,24 +276,22 @@ void AnalysisWithDataCollection::update(){ // Reweighting because of biases if( !biases.empty() ) ww += bias/simtemp; - // Get the arguments ready to transfer to reference configuration - std::vector<double> current_args( getNumberOfArguments() ); - for(unsigned i=0;i<getNumberOfArguments();++i) current_args[i]=getArgument(i); - // Could add stuff for fancy metrics here eventually but for now unecessary - std::vector<double> mymetric( getNumberOfArguments(), 1.0 ); - + // Pass the atom positions to the pdb + mypdb.setAtomPositions( getPositions() ); + // Pass the argument values to the pdb + for(unsigned i=0;i<getNumberOfArguments();++i){ + mypdb.setArgumentValue( getPntrToArgument(i)->getName(), getArgument(i) ); + } + // Could add stuff for mahalanobis distance etc here eventually but for now unecessary + if(use_all_data){ data.push_back( metricRegister().create<ReferenceConfiguration>( metricname ) ); plumed_dbg_assert( data.size()==idata+1 ); - std::vector<std::string> argument_names( getNumberOfArguments() ); - for(unsigned i=0;i<getNumberOfArguments();++i) argument_names[i] = getPntrToArgument(i)->getName(); - data[idata]->setNamesAndAtomNumbers( getAbsoluteIndexes(), argument_names ); - data[idata]->setReferenceConfig( getPositions(), current_args, mymetric ); - logweights.push_back(ww); + data[idata]->set( mypdb ); logweights.push_back(ww); } else { // Get the arguments and store them in a vector of vectors - data[idata]->setReferenceConfig( getPositions(), current_args, mymetric ); - logweights[idata] = ww; + // We have to clear all properties from previous analyses prior to setting the data + data[idata]->clearAllProperties(); data[idata]->set( mypdb ); logweights[idata] = ww; } // Write data to checkpoint file diff --git a/src/analysis/AnalysisWithDataCollection.h b/src/analysis/AnalysisWithDataCollection.h index 2a54464dbf873c7d0cd2102d1891c330f96da783..97ec59d8eceafc916a77b028a01fbef7b0dc61a0 100644 --- a/src/analysis/AnalysisWithDataCollection.h +++ b/src/analysis/AnalysisWithDataCollection.h @@ -23,6 +23,7 @@ #define __PLUMED_analysis_AnalysisWithDataCollection_h #include "AnalysisBase.h" +#include "tools/PDB.h" namespace PLMD { @@ -52,8 +53,9 @@ private: bool firstAnalysisDone; /// The value of the old normalization constant double norm, old_norm; -/// List of argument names - std::vector<std::string> argument_names; +/// Data is collected from the trajectory by passing it to this pdb. These pdb +/// files are then read by the ReferenceConfigurations in data + PDB mypdb; /// The type of metric we are using to measure distances std::string metricname; /// The checkpoint file --- really I would like to get rid of this and have some universal mechanism and a single file GT @@ -88,7 +90,7 @@ public: /// Get the ith data point virtual void getDataPoint( const unsigned& idata, std::vector<double>& point, double& weight ) const ; /// Get a reference configuration (in dimensionality reduction this returns the projection) - virtual ReferenceConfiguration* getReferenceConfiguration( const unsigned& idat, bool& isprojection ); + virtual ReferenceConfiguration* getReferenceConfiguration( const unsigned& idat ); /// Get the underlying reference configuration (in dimensionality reduction this return the high dimensional point) ReferenceConfiguration* getInputReferenceConfiguration( const unsigned& idat ); /// This ensures that the energy is stored if we are reweighting diff --git a/src/analysis/EuclideanDissimilarityMatrix.cpp b/src/analysis/EuclideanDissimilarityMatrix.cpp index 2e5cd733ea95e460260ebf4911726bb0b28a2c61..d8d8ac5686ae8072d1404e4f1bc2c5f223bed72a 100644 --- a/src/analysis/EuclideanDissimilarityMatrix.cpp +++ b/src/analysis/EuclideanDissimilarityMatrix.cpp @@ -73,8 +73,7 @@ double EuclideanDissimilarityMatrix::getDissimilarity( const unsigned& iframe, c plumed_dbg_assert( iframe<dissimilarities.nrows() && jframe<dissimilarities.ncols() ); if( dissimilarities(iframe,jframe)>0. ){ return dissimilarities(iframe,jframe); } if( iframe!=jframe ){ - bool ignore; - dissimilarities(iframe,jframe) = dissimilarities(jframe,iframe) = distance( getPbc(), getArguments(), getReferenceConfiguration(iframe,ignore), getReferenceConfiguration(jframe,ignore), true ); + dissimilarities(iframe,jframe) = dissimilarities(jframe,iframe) = distance( getPbc(), getArguments(), getReferenceConfiguration(iframe), getReferenceConfiguration(jframe), true ); return dissimilarities(iframe,jframe); } return 0.0; diff --git a/src/analysis/LandmarkSelectionBase.h b/src/analysis/LandmarkSelectionBase.h index 5a91ffe6f8d839c7be60e21e7f96684827aebb31..09d56554559db50f199d2da098adc0d08ec6fce6 100644 --- a/src/analysis/LandmarkSelectionBase.h +++ b/src/analysis/LandmarkSelectionBase.h @@ -54,7 +54,7 @@ public: /// Get the ith data point void getDataPoint( const unsigned& idata, std::vector<double>& point, double& weight ) const ; /// Get a reference configuration - ReferenceConfiguration* getReferenceConfiguration( const unsigned& idat, bool& isprojection ); + ReferenceConfiguration* getReferenceConfiguration( const unsigned& idat ); /// Select landmark configurations void performAnalysis(); virtual void selectLandmarks()=0; @@ -85,8 +85,8 @@ void LandmarkSelectionBase::getDataPoint( const unsigned& idata, std::vector<dou } inline -ReferenceConfiguration* LandmarkSelectionBase::getReferenceConfiguration( const unsigned& idat, bool& isprojection ){ - return AnalysisWithDataCollection::getReferenceConfiguration( landmark_indices[idat], isprojection ); +ReferenceConfiguration* LandmarkSelectionBase::getReferenceConfiguration( const unsigned& idat ){ + return AnalysisWithDataCollection::getReferenceConfiguration( landmark_indices[idat] ); } inline diff --git a/src/analysis/OutputColvarFile.cpp b/src/analysis/OutputColvarFile.cpp index df589e265c6860421a66c3aa5818379c5907120a..fe56fc3d0b20934ec52e2194a8d4273ff113a365 100644 --- a/src/analysis/OutputColvarFile.cpp +++ b/src/analysis/OutputColvarFile.cpp @@ -88,17 +88,21 @@ void OutputColvarFile::performAnalysis(){ gfile.fmtField(fmt+" "); gfile.open( filename.c_str() ); - // Can't print out all landmark data if we have reference atom positions - bool ignore; - ReferenceAtoms* myat=dynamic_cast<ReferenceAtoms*>( getReferenceConfiguration(0,ignore) ); - plumed_assert( !myat ); - + ReferenceConfiguration* myp = getReferenceConfiguration(0); + if( myp->getNumberOfProperties()==0 ) plumed_assert( !dynamic_cast<ReferenceAtoms*>( myp ) ); + // Print embedding coordinates for(unsigned i=0;i<getNumberOfDataPoints();++i){ - ReferenceArguments* myref=dynamic_cast<ReferenceArguments*>( getReferenceConfiguration(i,ignore) ); - plumed_assert( myref ); - for(unsigned j=0;j<myref->getReferenceArguments().size();++j){ - gfile.printField( myref->getArgumentNames()[j], myref->getReferenceArgument(j) ); + ReferenceConfiguration* mypoint=getReferenceConfiguration(i); + for(unsigned j=0;j<mypoint->getNumberOfProperties();++j){ + gfile.printField( mypoint->getPropertyName(j), mypoint->getPropertyValue(j) ); + } + if( mypoint->getNumberOfProperties()==0 ){ + ReferenceArguments* myref=dynamic_cast<ReferenceArguments*>( mypoint ); + plumed_assert( myref ); + for(unsigned j=0;j<myref->getReferenceArguments().size();++j){ + gfile.printField( myref->getArgumentNames()[j], myref->getReferenceArgument(j) ); + } } gfile.printField(); } diff --git a/src/analysis/OutputPDBFile.cpp b/src/analysis/OutputPDBFile.cpp index 6112115e16f11d5f54af7e603d253383683d22b3..ae0fa1db6793b72013851a0b3249f737e03357dd 100644 --- a/src/analysis/OutputPDBFile.cpp +++ b/src/analysis/OutputPDBFile.cpp @@ -77,18 +77,12 @@ fmt("%f") void OutputPDBFile::performAnalysis(){ // Output the embedding in plumed pdb format OFile afile; afile.link(*this); afile.setBackupString("analysis"); std::size_t psign=fmt.find("%"); - afile.open( filename.c_str() ); bool isprojection; std::string descr="REMARK WEIGHT=%-" + fmt.substr(psign+1) + "\n"; + afile.open( filename.c_str() ); std::string descr="REMARK WEIGHT=%-" + fmt.substr(psign+1) + "\n"; for(unsigned j=0;j<getNumberOfDataPoints();++j){ afile.printf("DESCRIPTION: analysis data from calculation done at time %f \n",getLabel().c_str(),getTime() ); afile.printf(descr.c_str(),getWeight(j) ); - ReferenceConfiguration* myref = getReferenceConfiguration(j,isprojection); - if( plumed.getAtoms().usingNaturalUnits() ) myref->print( 1.0, afile, fmt, isprojection ); - else myref->print( plumed.getAtoms().getUnits().getLength()/0.1, afile, fmt, isprojection ); - // This ensures the high dimensional position is projected if we are working with dimensionality reduction - if( isprojection ){ - if( plumed.getAtoms().usingNaturalUnits() ) getInputReferenceConfiguration(j)->print( 1.0, afile, fmt, false ); - else getInputReferenceConfiguration(j)->print( plumed.getAtoms().getUnits().getLength()/0.1, afile, fmt, false ); - } + if( plumed.getAtoms().usingNaturalUnits() ) getReferenceConfiguration(j)->print( 1.0, afile, fmt ); + else getReferenceConfiguration(j)->print( plumed.getAtoms().getUnits().getLength()/0.1, afile, fmt ); } afile.close(); } diff --git a/src/analysis/ReadDissimilarityMatrix.cpp b/src/analysis/ReadDissimilarityMatrix.cpp index 03df61abb5905804a54926028568ef06309d7b37..7dec6c1ddd1171dcadd447d32f52569fd9c6a0e2 100644 --- a/src/analysis/ReadDissimilarityMatrix.cpp +++ b/src/analysis/ReadDissimilarityMatrix.cpp @@ -48,7 +48,7 @@ public: ReadDissimilarityMatrix( const ActionOptions& ao ); unsigned getNumberOfDataPoints() const { return nnodes; } /// This gives an error as if we read in the matrix we dont have the coordinates - ReferenceConfiguration* getReferenceConfiguration( const unsigned& idata, bool& isprojection ); + ReferenceConfiguration* getReferenceConfiguration( const unsigned& idata ); ReferenceConfiguration* getInputReferenceConfiguration( const unsigned& idata ); /// This gives an error as if we read in the matrix we dont have the coordinates void getDataPoint( const unsigned& idata, std::vector<double>& point, double& weight ) const ; @@ -124,7 +124,7 @@ double ReadDissimilarityMatrix::getDissimilarity( const unsigned& iframe, const return dissimilarities( iframe, jframe ); } -ReferenceConfiguration* ReadDissimilarityMatrix::getReferenceConfiguration( const unsigned& idata, bool& isprojection ){ +ReferenceConfiguration* ReadDissimilarityMatrix::getReferenceConfiguration( const unsigned& idata ){ plumed_merror("cannot get reference configurations from read in dissimilarity matrix"); return NULL; } diff --git a/src/dimred/DimensionalityReductionBase.cpp b/src/dimred/DimensionalityReductionBase.cpp index 505bbe4bb8ebdb37118803e1aa4b422527461580..364695734a7cebf3ec5f5d4e6fb38b6b7307b7fe 100644 --- a/src/dimred/DimensionalityReductionBase.cpp +++ b/src/dimred/DimensionalityReductionBase.cpp @@ -21,7 +21,6 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ #include "DimensionalityReductionBase.h" #include "reference/ReferenceConfiguration.h" -#include "reference/MetricRegister.h" #include "core/PlumedMain.h" #include "core/Atoms.h" @@ -36,7 +35,6 @@ void DimensionalityReductionBase::registerKeywords( Keywords& keys ){ DimensionalityReductionBase::DimensionalityReductionBase( const ActionOptions& ao ): Action(ao), analysis::AnalysisBase(ao), -myref(NULL), dimredbase(NULL) { // Check that some dissimilarity information is available @@ -52,23 +50,12 @@ dimredbase(NULL) if( nlow<1 ) error("dimensionality of low dimensional space must be at least one"); } log.printf(" projecting in %d dimensional space \n",nlow); - - ReferenceConfigurationOptions("EUCLIDEAN"); - myref=metricRegister().create<ReferenceConfiguration>("EUCLIDEAN"); - std::vector<std::string> dimnames(nlow); std::string num; - for(unsigned i=0;i<nlow;++i){ Tools::convert(i+1,num); dimnames[i] = getLabel() + "." + num; } - myref->setNamesAndAtomNumbers( std::vector<AtomNumber>(), dimnames ); -} - -DimensionalityReductionBase::~DimensionalityReductionBase(){ - delete myref; } -ReferenceConfiguration* DimensionalityReductionBase::getReferenceConfiguration( const unsigned& idat, bool& isprojection ){ - std::vector<double> pp(nlow); for(unsigned i=0;i<nlow;++i) pp[i]=projections(idat,i); - std::vector<double> empty( pp.size() ); isprojection=true; - myref->setReferenceConfig( std::vector<Vector>(), pp, empty ); - return myref; +ReferenceConfiguration* DimensionalityReductionBase::getReferenceConfiguration( const unsigned& idat ){ + ReferenceConfiguration* myref = mydata->getInputReferenceConfiguration( idat ); std::string num; myref->clearAllProperties(); + for(unsigned i=0;i<nlow;++i){ Tools::convert(i+1,num); myref->attachProperty( getLabel() + "." + num, projections(idat,i) ); } + return myref; } ReferenceConfiguration* DimensionalityReductionBase::getInputReferenceConfiguration( const unsigned& idat ){ diff --git a/src/dimred/DimensionalityReductionBase.h b/src/dimred/DimensionalityReductionBase.h index 66725aa8036123d3b9ac5cd5d73f8b0a928ebcb7..e06be9d81980fd5259983f8106bb5692c1a4bb85 100644 --- a/src/dimred/DimensionalityReductionBase.h +++ b/src/dimred/DimensionalityReductionBase.h @@ -34,9 +34,6 @@ private: /// This are the target distances for a single point. /// This is used when we do out of sample or pointwise global optimization std::vector<double> dtargets; -/// We create a reference configuration here so that we can pass projection data -/// quickly - ReferenceConfiguration* myref; /// The projections that were generated by the dimensionality reduction algorithm Matrix<double> projections; protected: @@ -47,11 +44,10 @@ protected: public: static void registerKeywords( Keywords& keys ); DimensionalityReductionBase( const ActionOptions& ); - ~DimensionalityReductionBase(); /// Get the ith data point (this returns the projection) void getDataPoint( const unsigned& idata, std::vector<double>& point, double& weight ) const ; /// Get a reference configuration (this returns the projection) - ReferenceConfiguration* getReferenceConfiguration( const unsigned& idata, bool& isprojection ); + ReferenceConfiguration* getReferenceConfiguration( const unsigned& idata ); ReferenceConfiguration* getInputReferenceConfiguration( const unsigned& idata ); /// Actually perform the analysis void performAnalysis(); diff --git a/src/dimred/ProjectNonLandmarkPoints.cpp b/src/dimred/ProjectNonLandmarkPoints.cpp index a606ffb315722dab216a8edf5254120f631bb32d..0dc28f101bbca8c99dcd5045108fdb2c9e898381 100644 --- a/src/dimred/ProjectNonLandmarkPoints.cpp +++ b/src/dimred/ProjectNonLandmarkPoints.cpp @@ -23,9 +23,9 @@ #include "core/PlumedMain.h" #include "core/ActionSet.h" #include "tools/Random.h" -#include "reference/MetricRegister.h" #include "tools/ConjugateGradient.h" #include "analysis/AnalysisBase.h" +#include "reference/ReferenceConfiguration.h" #include "DimensionalityReductionBase.h" //+PLUMEDOC DIMRED PROJECT_ALL_ANALYSIS_DATA @@ -46,22 +46,18 @@ private: double cgtol; /// Number of diemsions in low dimensional space unsigned nlow; -/// We create a reference configuration here so that we can pass projection data -/// quickly - ReferenceConfiguration* myref; /// The class that calcualtes the projection of the data that is required DimensionalityReductionBase* mybase; /// Generate a projection of the ith data point - this is called in two routine - void generateProjection( const unsigned& idata, std::vector<double>& point ); + void generateProjection( const unsigned& idat, std::vector<double>& point ); public: static void registerKeywords( Keywords& keys ); ProjectNonLandmarkPoints( const ActionOptions& ao ); - ~ProjectNonLandmarkPoints(); /// Get the ith data point (this returns the projection) - void getDataPoint( const unsigned& idata, std::vector<double>& point ); + void getDataPoint( const unsigned& idat, std::vector<double>& point ); /// Get a reference configuration (this returns the projection) - ReferenceConfiguration* getReferenceConfiguration( const unsigned& idata, bool& isprojection ); - ReferenceConfiguration* getInputReferenceConfiguration( const unsigned& idata ); + ReferenceConfiguration* getReferenceConfiguration( const unsigned& idat ); + ReferenceConfiguration* getInputReferenceConfiguration( const unsigned& idat ); /// This does nothing -- projections are calculated when getDataPoint and getReferenceConfiguration are called void performAnalysis(){} /// This just calls calculate stress in the underlying projection object @@ -92,24 +88,14 @@ mybase(NULL) log.printf(" generating out-of-sample projections using projection with label %s \n",myproj.c_str() ); parse("CGTOL",cgtol); - - ReferenceConfigurationOptions("EUCLIDEAN"); - myref=metricRegister().create<ReferenceConfiguration>("EUCLIDEAN"); - std::vector<std::string> dimnames(nlow); std::string num; - for(unsigned i=0;i<nlow;++i){ Tools::convert(i+1,num); dimnames[i] = getLabel() + "." + num; } - myref->setNamesAndAtomNumbers( std::vector<AtomNumber>(), dimnames ); -} - -ProjectNonLandmarkPoints::~ProjectNonLandmarkPoints(){ - delete myref; } -void ProjectNonLandmarkPoints::generateProjection( const unsigned& idata, std::vector<double>& point ){ +void ProjectNonLandmarkPoints::generateProjection( const unsigned& idat, std::vector<double>& point ){ ConjugateGradient<ProjectNonLandmarkPoints> myminimiser( this ); - unsigned closest=0; double mindist = sqrt( getDissimilarity( idata, mybase->getDataPointIndexInBase(0) ) ); + unsigned closest=0; double mindist = sqrt( getDissimilarity( idat, mybase->getDataPointIndexInBase(0) ) ); mybase->setTargetDistance( 0, mindist ); for(unsigned i=1;i<mybase->getNumberOfDataPoints();++i){ - double dist = sqrt( getDissimilarity( idata, mybase->getDataPointIndexInBase(i) ) ); + double dist = sqrt( getDissimilarity( idat, mybase->getDataPointIndexInBase(i) ) ); mybase->setTargetDistance( i, dist ); if( dist<mindist ){ mindist=dist; closest=i; } } @@ -119,19 +105,20 @@ void ProjectNonLandmarkPoints::generateProjection( const unsigned& idata, std::v myminimiser.minimise( cgtol, point, &ProjectNonLandmarkPoints::calculateStress ); } -ReferenceConfiguration* ProjectNonLandmarkPoints::getReferenceConfiguration( const unsigned& idata, bool& isprojection ){ - std::vector<double> pp(nlow); std::vector<double> empty( pp.size() ); generateProjection( idata, pp ); - myref->setReferenceConfig( std::vector<Vector>(), pp, empty ); isprojection=true; +ReferenceConfiguration* ProjectNonLandmarkPoints::getReferenceConfiguration( const unsigned& idat ){ + std::vector<double> pp(nlow); generateProjection( idat, pp ); std::string num; + ReferenceConfiguration* myref = mydata->getInputReferenceConfiguration( idat ); myref->clearAllProperties(); + for(unsigned i=0;i<nlow;++i){ Tools::convert(i+1,num); myref->attachProperty( getLabel() + "." + num, pp[i] ); } return myref; } -ReferenceConfiguration* ProjectNonLandmarkPoints::getInputReferenceConfiguration( const unsigned& idata ){ - return mydata->getInputReferenceConfiguration( idata ); +ReferenceConfiguration* ProjectNonLandmarkPoints::getInputReferenceConfiguration( const unsigned& idat ){ + return mydata->getInputReferenceConfiguration( idat ); } -void ProjectNonLandmarkPoints::getDataPoint( const unsigned& idata, std::vector<double>& point ){ +void ProjectNonLandmarkPoints::getDataPoint( const unsigned& idat, std::vector<double>& point ){ if( point.size()!=nlow ) point.resize( nlow ); - generateProjection( idata, point ); + generateProjection( idat, point ); } double ProjectNonLandmarkPoints::calculateStress( const std::vector<double>& pp, std::vector<double>& der ){ diff --git a/src/mapping/Mapping.cpp b/src/mapping/Mapping.cpp index b3ba5d58df84d0c3e2fbeb8bd68498bf17a2a3a6..2a8fcaed3cac5c4c68d41871048e2f9eb59beb99 100644 --- a/src/mapping/Mapping.cpp +++ b/src/mapping/Mapping.cpp @@ -106,9 +106,9 @@ ActionWithVessel(ao) requestAtoms( atoms ); std::vector<Value*> req_args; interpretArgumentList( args, req_args ); requestArguments( req_args ); // Duplicate all frames (duplicates are used by sketch-map) - mymap->duplicateFrameList(); + // mymap->duplicateFrameList(); // fframes.resize( 2*nfram, 0.0 ); dfframes.resize( 2*nfram, 0.0 ); - plumed_assert( !mymap->mappingNeedsSetup() ); + // plumed_assert( !mymap->mappingNeedsSetup() ); // Resize all derivative arrays // mymap->setNumberOfAtomsAndArguments( atoms.size(), args.size() ); // Resize forces array @@ -128,25 +128,25 @@ Mapping::~Mapping(){ delete mymap; } -void Mapping::prepare(){ - if( mymap->mappingNeedsSetup() ){ - // Get the arguments and atoms that are required - std::vector<AtomNumber> atoms; std::vector<std::string> args; - mymap->getAtomAndArgumentRequirements( atoms, args ); - requestAtoms( atoms ); std::vector<Value*> req_args; - interpretArgumentList( args, req_args ); requestArguments( req_args ); - // Duplicate all frames (duplicates are used by sketch-map) - mymap->duplicateFrameList(); - // Get the number of frames in the path - unsigned nfram=getNumberOfReferencePoints(); - // fframes.resize( 2*nfram, 0.0 ); dfframes.resize( 2*nfram, 0.0 ); - plumed_assert( !mymap->mappingNeedsSetup() ); - // Resize all derivative arrays - // mymap->setNumberOfAtomsAndArguments( atoms.size(), args.size() ); - // Resize forces array - forcesToApply.resize( 3*getNumberOfAtoms() + 9 + getNumberOfArguments() ); - } -} +// void Mapping::prepare(){ +// if( mymap->mappingNeedsSetup() ){ +// // Get the arguments and atoms that are required +// std::vector<AtomNumber> atoms; std::vector<std::string> args; +// mymap->getAtomAndArgumentRequirements( atoms, args ); +// requestAtoms( atoms ); std::vector<Value*> req_args; +// interpretArgumentList( args, req_args ); requestArguments( req_args ); +// // Duplicate all frames (duplicates are used by sketch-map) +// // mymap->duplicateFrameList(); +// // Get the number of frames in the path +// unsigned nfram=getNumberOfReferencePoints(); +// // fframes.resize( 2*nfram, 0.0 ); dfframes.resize( 2*nfram, 0.0 ); +// plumed_assert( !mymap->mappingNeedsSetup() ); +// // Resize all derivative arrays +// // mymap->setNumberOfAtomsAndArguments( atoms.size(), args.size() ); +// // Resize forces array +// forcesToApply.resize( 3*getNumberOfAtoms() + 9 + getNumberOfArguments() ); +// } +// } unsigned Mapping::getPropertyIndex( const std::string& name ) const { return mymap->getPropertyIndex( name ); diff --git a/src/mapping/Mapping.h b/src/mapping/Mapping.h index 855f91576493e33c257dc8eb3b67b2d9d335b5b3..4fb4ea05631cebd7744f5796675a17344a1d8833 100644 --- a/src/mapping/Mapping.h +++ b/src/mapping/Mapping.h @@ -91,7 +91,7 @@ public: /// Get the value of the ith property for the current frame double getPropertyValue( const unsigned& current, const unsigned& iprop ) const ; /// Stuff to do before we do the calculation - void prepare(); +// void prepare(); /// Apply the forces void apply(); }; diff --git a/src/mapping/PCAVars.cpp b/src/mapping/PCAVars.cpp index aaf1ad0d183b6047fcbbd45b4a2721749885ca4c..928b1fbf63619c3f373f7a283ce4814a8cd28db0 100644 --- a/src/mapping/PCAVars.cpp +++ b/src/mapping/PCAVars.cpp @@ -274,8 +274,6 @@ mypack(0,0,myvals) /// This sets up all the storage data required by PCA in the pack myframes.getFrame(0)->setupPCAStorage( mypack ); - // Retrieve the position of the first frame, as we use this for alignment - myref->setNamesAndAtomNumbers( atoms, args ); // Check there are no periodic arguments for(unsigned i=0;i<getNumberOfArguments();++i){ if( getPntrToArgument(i)->isPeriodic() ) error("cannot use periodic variables in pca projections"); diff --git a/src/reference/MultiDomainRMSD.cpp b/src/reference/MultiDomainRMSD.cpp index c87317502ea3e1365489ea21f9a42a09915683d6..b9e1eca5b911ab57e05df2740a2bbaaa674cfd28 100644 --- a/src/reference/MultiDomainRMSD.cpp +++ b/src/reference/MultiDomainRMSD.cpp @@ -79,7 +79,8 @@ void MultiDomainRMSD::read( const PDB& pdb ){ else weights.push_back( ww ); } // And set the atom numbers for this object - setAtomNumbers( pdb.getAtomNumbers() ); + for(unsigned i=0;i<pdb.size();++i){ indices.push_back( pdb.getAtomNumbers()[i] ); der_index.push_back(i); } + // setAtomNumbers( pdb.getAtomNumbers() ); } void MultiDomainRMSD::setReferenceAtoms( const std::vector<Vector>& conf, const std::vector<double>& align_in, const std::vector<double>& displace_in ){ diff --git a/src/reference/MultiReferenceBase.cpp b/src/reference/MultiReferenceBase.cpp index fcfdd2337ccee5e687be1c70190e3cd3d0f35940..cd2ed45d0724d5483250281488bb7e3e8465b9b7 100644 --- a/src/reference/MultiReferenceBase.cpp +++ b/src/reference/MultiReferenceBase.cpp @@ -70,20 +70,20 @@ void MultiReferenceBase::getAtomAndArgumentRequirements( std::vector<AtomNumber> // } // } -void MultiReferenceBase::copyFrame( ReferenceConfiguration* frameToCopy ){ - // Create a reference configuration of the appropriate type - ReferenceConfiguration* mymsd=metricRegister().create<ReferenceConfiguration>( frameToCopy->getName() ); - // Copy names of arguments and and indexes - mymsd->setNamesAndAtomNumbers( frameToCopy->getAbsoluteIndexes(), frameToCopy->getArgumentNames() ); - // Copy reference positions, reference arguments and reference metric - mymsd->setReferenceConfig( frameToCopy->getReferencePositions(), frameToCopy->getReferenceArguments(), frameToCopy->getReferenceMetric() ); - // Copy weight - mymsd->setWeight( frameToCopy->getWeight() ); - // Easy bit - copy the frame - frames.push_back( mymsd ); - // This resizes the low dim array - resizeRestOfFrame(); -} +// void MultiReferenceBase::copyFrame( ReferenceConfiguration* frameToCopy ){ +// // Create a reference configuration of the appropriate type +// ReferenceConfiguration* mymsd=metricRegister().create<ReferenceConfiguration>( frameToCopy->getName() ); +// // Copy names of arguments and and indexes +// mymsd->setNamesAndAtomNumbers( frameToCopy->getAbsoluteIndexes(), frameToCopy->getArgumentNames() ); +// // Copy reference positions, reference arguments and reference metric +// mymsd->setReferenceConfig( frameToCopy->getReferencePositions(), frameToCopy->getReferenceArguments(), frameToCopy->getReferenceMetric() ); +// // Copy weight +// mymsd->setWeight( frameToCopy->getWeight() ); +// // Easy bit - copy the frame +// frames.push_back( mymsd ); +// // This resizes the low dim array +// resizeRestOfFrame(); +// } void MultiReferenceBase::setWeights( const std::vector<double>& weights ){ plumed_assert( weights.size()==frames.size() ); diff --git a/src/reference/MultiReferenceBase.h b/src/reference/MultiReferenceBase.h index fddb71530216985fe3edd9fa885ba7b20236f827..0d2827133893b835e0dbd84f2b9f9b686e49ed41 100644 --- a/src/reference/MultiReferenceBase.h +++ b/src/reference/MultiReferenceBase.h @@ -66,7 +66,7 @@ public: /// Return the ith reference frame ReferenceConfiguration* getFrame( const unsigned& iframe ); /// Copy a reference configuration into the multi reference object - void copyFrame( ReferenceConfiguration* frameToCopy ); +// void copyFrame( ReferenceConfiguration* frameToCopy ); /// Set the weight of the ith frame void setWeights( const std::vector<double>& ww ); /// Retrieve the weight of one of the frames diff --git a/src/reference/ReferenceArguments.cpp b/src/reference/ReferenceArguments.cpp index 50cb4578693659905651505893b8dfe13802b285..a9bc45727a7841206a2e6e4382335c62826f37bd 100644 --- a/src/reference/ReferenceArguments.cpp +++ b/src/reference/ReferenceArguments.cpp @@ -38,8 +38,8 @@ void ReferenceArguments::readArgumentsFromPDB( const PDB& pdb ){ if( !aref ) parseVector( "ARG", arg_names ); else parseVector( "ARG", arg_names, true ); - reference_args.resize( arg_names.size() ); - for(unsigned i=0;i<arg_names.size();++i) parse( arg_names[i], reference_args[i] ); + reference_args.resize( arg_names.size() ); der_index.resize( arg_names.size() ); + for(unsigned i=0;i<arg_names.size();++i){ parse( arg_names[i], reference_args[i] ); der_index[i]=i; } if( hasweights ){ plumed_massert( !hasmetric, "should not have weights if we are using metric"); @@ -62,17 +62,6 @@ void ReferenceArguments::readArgumentsFromPDB( const PDB& pdb ){ } } -void ReferenceArguments::setArgumentNames( const std::vector<std::string>& arg_vals ){ - reference_args.resize( arg_vals.size() ); - arg_names.resize( arg_vals.size() ); - der_index.resize( arg_vals.size() ); - for(unsigned i=0;i<arg_vals.size();++i){ - arg_names[i]=arg_vals[i]; der_index[i]=i; - } - if( hasmetric ) metric.resize( arg_vals.size(), arg_vals.size() ); - else weights.resize( arg_vals.size() ); -} - void ReferenceArguments::setReferenceArguments( const std::vector<double>& arg_vals, const std::vector<double>& sigma ){ plumed_dbg_assert( reference_args.size()==arg_vals.size() ); for(unsigned i=0;i<arg_vals.size();++i) reference_args[i]=arg_vals[i]; @@ -120,9 +109,8 @@ void ReferenceArguments::getArgumentRequests( std::vector<std::string>& argout, } } -void ReferenceArguments::printArguments( OFile& ofile, const std::string& fmt, const bool& isproperty ) const { - if( isproperty ) ofile.printf("REMARK PROPERTIES=%s", arg_names[0].c_str() ); - else ofile.printf("REMARK ARG=%s", arg_names[0].c_str() ); +void ReferenceArguments::printArguments( OFile& ofile, const std::string& fmt ) const { + ofile.printf("REMARK ARG=%s", arg_names[0].c_str() ); for(unsigned i=1;i<arg_names.size();++i) ofile.printf(",%s", arg_names[i].c_str() ); ofile.printf("\n"); ofile.printf("REMARK "); diff --git a/src/reference/ReferenceArguments.h b/src/reference/ReferenceArguments.h index d1fc4db14e51c1ca2d2fb9512385b91896342f03..0663aa44bea1cd355ffcf50a754cf5915fc70290 100644 --- a/src/reference/ReferenceArguments.h +++ b/src/reference/ReferenceArguments.h @@ -73,14 +73,12 @@ public: unsigned getNumberOfReferenceArguments() const ; /// Get the arguments required void getArgumentRequests( std::vector<std::string>&, bool disable_checks=false ); -/// Set the names of the arguments - void setArgumentNames( const std::vector<std::string>& arg_vals ); /// Set the positions of the refernce arguments void setReferenceArguments( const std::vector<double>& arg_vals, const std::vector<double>& sigma ); /// Get the value of the ith reference argument double getReferenceArgument( const unsigned& i ) const ; /// Print the arguments out - void printArguments( OFile& ofile, const std::string& fmt, const bool& isproperty ) const ; + void printArguments( OFile& ofile, const std::string& fmt ) const ; /// Return all the reference arguments const std::vector<double>& getReferenceArguments(); const std::vector<double>& getReferenceMetric(); diff --git a/src/reference/ReferenceAtoms.cpp b/src/reference/ReferenceAtoms.cpp index c28dc682e8f07b6cdb25c1a9e18bdc50068761cf..b97f2d4cb4c07b3d8e3435dd2b8756035f0136e4 100644 --- a/src/reference/ReferenceAtoms.cpp +++ b/src/reference/ReferenceAtoms.cpp @@ -36,17 +36,7 @@ void ReferenceAtoms::readAtomsFromPDB( const PDB& pdb ){ for(unsigned i=0;i<pdb.size();++i){ indices.push_back( pdb.getAtomNumbers()[i] ); reference_atoms.push_back( pdb.getPositions()[i] ); - align.push_back( pdb.getOccupancy()[i] ); displace.push_back( pdb.getBeta()[i] ); - } - der_index.resize( reference_atoms.size() ); -} - -void ReferenceAtoms::setAtomNumbers( const std::vector<AtomNumber>& numbers ){ - reference_atoms.resize( numbers.size() ); align.resize( numbers.size() ); - displace.resize( numbers.size() ); der_index.resize( numbers.size() ); - indices.resize( numbers.size() ); - for(unsigned i=0;i<numbers.size();++i){ - indices[i]=numbers[i]; der_index[i]=i; + align.push_back( pdb.getOccupancy()[i] ); displace.push_back( pdb.getBeta()[i] ); der_index.push_back(i); } } diff --git a/src/reference/ReferenceAtoms.h b/src/reference/ReferenceAtoms.h index 5e7e0c12e79cef387520c281df99d9c228f678dc..6fc17ced1443c70f57d3b9c5c8315be8488819d3 100644 --- a/src/reference/ReferenceAtoms.h +++ b/src/reference/ReferenceAtoms.h @@ -45,6 +45,7 @@ class ReferenceAtoms : virtual public ReferenceConfiguration { friend class SingleDomainRMSD; +friend class MultiDomainRMSD; private: /// This flag tells us if the user has disabled checking of the input in order to /// do fancy paths with weird inputs @@ -64,8 +65,6 @@ private: protected: /// Read in the atoms from the pdb file void readAtomsFromPDB( const PDB& ); -/// Add atom indices to list - void setAtomIndices( const std::vector<AtomNumber>& atomnumbers ); /// Read a list of atoms from the pdb input file bool parseAtomList( const std::string& , std::vector<unsigned>& ); /// Get the vector of alignment weights @@ -76,12 +75,6 @@ protected: Vector getReferencePosition( const unsigned& iatom ) const ; /// Get the reference positions const std::vector<Vector> & getReferencePositions() const ; -/// Add derivatives to iatom th atom in list -// void addAtomicDerivatives( const unsigned& , const Vector& ); -/// Get the atomic derivatives on the ith atom in the list -// Vector retrieveAtomicDerivatives( const unsigned& ) const ; -/// Add derivatives to the viral -// void addBoxDerivatives( const Tensor& ); /// This does the checks that are always required void singleDomainRequests( std::vector<AtomNumber>&, bool disable_checks ); public: @@ -92,8 +85,6 @@ public: unsigned getAtomIndex( const unsigned& ) const ; /// Get the atoms required (additional checks are required when we have multiple domains) virtual void getAtomRequests( std::vector<AtomNumber>&, bool disable_checks=false ); -/// Set the indices of the reference atoms - void setAtomNumbers( const std::vector<AtomNumber>& numbers ); /// Set the positions of the reference atoms virtual void setReferenceAtoms( const std::vector<Vector>& conf, const std::vector<double>& align_in, const std::vector<double>& displace_in )=0; /// Print the atomic positions @@ -116,13 +107,12 @@ const std::vector<double> & ReferenceAtoms::getDisplace() const { inline unsigned ReferenceAtoms::getNumberOfReferencePositions() const { - plumed_dbg_assert( der_index.size()==reference_atoms.size() ); - return reference_atoms.size(); + return der_index.size(); // reference_atoms.size(); } inline unsigned ReferenceAtoms::getNumberOfAtoms() const { - return reference_atoms.size(); + return der_index.size(); // reference_atoms.size(); } inline @@ -143,21 +133,6 @@ const std::vector<Vector> & ReferenceAtoms::getReferencePositions() const { return reference_atoms; } -// inline -// void ReferenceAtoms::addAtomicDerivatives( const unsigned& iatom, const Vector& der ){ -// atom_ders[ getAtomIndex(iatom) ]+=der; -// } - -// inline -// Vector ReferenceAtoms::retrieveAtomicDerivatives( const unsigned& iatom ) const { -// return atom_ders[ getAtomIndex(iatom) ]; -// } - -// inline -// void ReferenceAtoms::addBoxDerivatives( const Tensor& vir ){ -// virialWasSet=true; virial+=vir; -// } - inline const std::vector<AtomNumber>& ReferenceAtoms::getAbsoluteIndexes(){ return indices; diff --git a/src/reference/ReferenceConfiguration.cpp b/src/reference/ReferenceConfiguration.cpp index b20e9b9bc37c04e4649bfeb34c204a9e11124228..8e094999578c2781fe1d640502371084ec4ac366 100644 --- a/src/reference/ReferenceConfiguration.cpp +++ b/src/reference/ReferenceConfiguration.cpp @@ -45,8 +45,6 @@ std::string ReferenceConfigurationOptions::getMultiRMSDType() const { ReferenceConfiguration::ReferenceConfiguration( const ReferenceConfigurationOptions& ro ): name(ro.tt) -// arg_ders(0), -// atom_ders(0) { weight=0.0; } @@ -66,22 +64,14 @@ void ReferenceConfiguration::set( const PDB& pdb ){ if(ignore!=name) error("mismatch for name"); } if( !parse("WEIGHT",weight,true) ) weight=1.0; + // Read in properties + parseVector( "PROPERTIES", property_names, true ); + property_values.resize( property_names.size() ); + for(unsigned i=0;i<property_names.size();++i) parse( property_names[i], property_values[i] ); + // And read in rest of pdb read( pdb ); } -// void ReferenceConfiguration::setNumberOfArguments( const unsigned& n ){ -// arg_ders.resize(n); tmparg.resize(n); -// } - -// void ReferenceConfiguration::setNumberOfAtoms( const unsigned& n ){ -// atom_ders.resize(n); -// } - -// bool ReferenceConfiguration::getVirial( Tensor& virout ) const { -// if(virialWasSet) virout=virial; -// return virialWasSet; -// } - void ReferenceConfiguration::parseFlag( const std::string&key, bool&t ){ Tools::parseFlag(line,key,t); } @@ -90,45 +80,6 @@ void ReferenceConfiguration::error(const std::string& msg){ plumed_merror("error reading reference configuration of type " + name + " : " + msg ); } -void ReferenceConfiguration::setNamesAndAtomNumbers( const std::vector<AtomNumber>& numbers, const std::vector<std::string>& arg ){ - ReferenceAtoms* atoms=dynamic_cast<ReferenceAtoms*>( this ); - if(!atoms){ - plumed_massert( numbers.size()==0, "expecting no atomic positions"); - //setNumberOfAtoms( 0 ); - } else { - atoms->setAtomNumbers( numbers ); - // setNumberOfAtoms( numbers.size() ); - } - // Copy the arguments to the reference - ReferenceArguments* args=dynamic_cast<ReferenceArguments*>( this ); - if(!args){ - plumed_massert( arg.size()==0, "expecting no arguments"); - // setNumberOfArguments(0); - } else { - args->setArgumentNames( arg ); - // setNumberOfArguments( arg.size() ); - } -} - -void ReferenceConfiguration::setReferenceConfig( const std::vector<Vector>& pos, const std::vector<double>& arg, const std::vector<double>& metric ){ -// plumed_dbg_assert( pos.size()==atom_ders.size() && arg.size()==arg_ders.size() ); - // Copy the atomic positions to the reference - ReferenceAtoms* atoms=dynamic_cast<ReferenceAtoms*>( this ); - if(!atoms){ - plumed_massert( pos.size()==0, "expecting no atomic positions"); - } else { - std::vector<double> align_in( pos.size(), 1.0 ), displace_in( pos.size(), 1.0 ); - atoms->setReferenceAtoms( pos, align_in, displace_in ); - } - // Copy the arguments to the reference - ReferenceArguments* args=dynamic_cast<ReferenceArguments*>( this ); - if(!args){ - plumed_massert( arg.size()==0 && metric.size()==0, "expecting no arguments"); - } else { - args->setReferenceArguments( arg, metric ); - } -} - void ReferenceConfiguration::checkRead(){ if(!line.empty()){ std::string msg="cannot understand the following words from the input line : "; @@ -143,31 +94,50 @@ bool ReferenceConfiguration::isDirection() const { double ReferenceConfiguration::calculate( const std::vector<Vector>& pos, const Pbc& pbc, const std::vector<Value*>& vals, ReferenceValuePack& myder, const bool& squared ) const { - // clearDerivatives(); std::vector<double> tmparg( vals.size() ); for(unsigned i=0;i<vals.size();++i) tmparg[i]=vals[i]->get(); return calc( pos, pbc, vals, tmparg, myder, squared ); } -// void ReferenceConfiguration::copyDerivatives( const ReferenceConfiguration* ref ){ -// plumed_dbg_assert( ref->atom_ders.size()==atom_ders.size() && ref->arg_ders.size()==arg_ders.size() ); -// for(unsigned i=0;i<atom_ders.size();++i) atom_ders[i]=ref->atom_ders[i]; -// for(unsigned i=0;i<arg_ders.size();++i) arg_ders[i]=ref->arg_ders[i]; -// virialWasSet=ref->virialWasSet; virial=ref->virial; -// } - void ReferenceConfiguration::print( const double& lunits, OFile& ofile, const double& time, const double& weight, const double& old_norm ){ ofile.printf("REMARK TIME=%f LOG_WEIGHT=%f OLD_NORM=%f\n",time, weight, old_norm ); - print( lunits, ofile, "%f", false ); // HARD CODED FORMAT HERE AS THIS IS FOR CHECKPOINT FILE + print( lunits, ofile, "%f" ); // HARD CODED FORMAT HERE AS THIS IS FOR CHECKPOINT FILE } -void ReferenceConfiguration::print( const double& lunits, OFile& ofile, const std::string& fmt, const bool& isproperty ){ +void ReferenceConfiguration::print( const double& lunits, OFile& ofile, const std::string& fmt ){ ReferenceArguments* args=dynamic_cast<ReferenceArguments*>(this); - if(args) args->printArguments( ofile, fmt, isproperty ); + if( property_names.size()>0 ){ + ofile.printf("REMARK PROPERTIES=%s", property_names[0].c_str() ); + for(unsigned i=1;i<property_names.size();++i) ofile.printf(",%s", property_names[i].c_str() ); + ofile.printf("\nREMARK "); std::string descr2; + if(fmt.find("-")!=std::string::npos){ + descr2="%s=" + fmt + " "; + } else { + // This ensures numbers are left justified (i.e. next to the equals sign + std::size_t psign=fmt.find("%"); + plumed_assert( psign!=std::string::npos ); + descr2="%s=%-" + fmt.substr(psign+1) + " "; + } + for(unsigned i=0;i<property_names.size();++i) ofile.printf( descr2.c_str(),property_names[i].c_str(), property_values[i] ); + ofile.printf("\n"); + } + if(args) args->printArguments( ofile, fmt ); ReferenceAtoms* atoms=dynamic_cast<ReferenceAtoms*>(this); - if( atoms && isproperty ) plumed_merror("a set of atoms is not a list of properties"); if(atoms) atoms->printAtoms( lunits, ofile ); - if( !isproperty ) ofile.printf("END\n"); + ofile.printf("END\n"); +} + +void ReferenceConfiguration::clearAllProperties(){ + property_names.resize(0); property_values.resize(0); +} + +void ReferenceConfiguration::attachProperty( const std::string& name, const double& val ){ + bool found=false; + for(unsigned i=0;i<property_names.size();++i){ + if( property_names[i]==name ){ found=false; property_values[i]=val; break; } + } + plumed_dbg_assert( property_names.size()==property_values.size() ); + if( !found ){ property_names.push_back( name ); property_values.push_back( val ); } } double distance( const Pbc& pbc, const std::vector<Value*> & vals, ReferenceConfiguration* ref1, ReferenceConfiguration* ref2, const bool& squared ){ @@ -185,4 +155,5 @@ double distance( const Pbc& pbc, const std::vector<Value*> & vals, ReferenceConf return dist1; } + } diff --git a/src/reference/ReferenceConfiguration.h b/src/reference/ReferenceConfiguration.h index a94a010df5c1be7b981e8be2bdf78d68f1848bce..0dd4ce0f9e03b0ecfa3f5e44b0054f59ce29f178 100644 --- a/src/reference/ReferenceConfiguration.h +++ b/src/reference/ReferenceConfiguration.h @@ -66,8 +66,6 @@ private: double weight; /// A vector containing all the remarks from the pdb input std::vector<std::string> line; -/// This is used to store the values of arguments -// std::vector<double> tmparg; /// These are used to do fake things when we copy frames std::vector<AtomNumber> fake_atom_numbers; std::vector<std::string> fake_arg_names; @@ -75,18 +73,12 @@ private: std::vector<Vector> fake_refatoms; std::vector<double> fake_refargs; std::vector<double> fake_metric; +/// Property values are basically the projections of points + std::vector<std::string> property_names; + std::vector<double> property_values; protected: -/// Derivatives wrt to the arguments -// std::vector<double> arg_ders; -/// The virial contribution has to be stored -// bool virialWasSet; -// Tensor virial; -/// Derivatives wrt to the atoms -// std::vector<Vector> atom_ders; /// Crash with an error void error(const std::string& msg); -/// Clear the derivatives -// void clearDerivatives(); public: ReferenceConfiguration( const ReferenceConfigurationOptions& ro ); /// Destructor @@ -100,10 +92,6 @@ public: virtual void getAtomRequests( std::vector<AtomNumber>&, bool disable_checks=false ){} /// Retrieve the arguments that are required for this guy virtual void getArgumentRequests( std::vector<std::string>&, bool disable_checks=false ){} -/// Set the final number of arguments -// virtual void setNumberOfArguments( const unsigned& ); -/// Set the final number of atoms -// virtual void setNumberOfAtoms( const unsigned& ); /// Set the reference configuration using a PDB virtual void set( const PDB& ); /// Do all local business for setting the configuration @@ -117,14 +105,6 @@ public: /// Calculate the distance from the reference configuration virtual double calc( const std::vector<Vector>& pos, const Pbc& pbc, const std::vector<Value*>& vals, const std::vector<double>& args, ReferenceValuePack& myder, const bool& squared ) const=0; -// /// Return the derivative wrt to the ith atom -// Vector getAtomDerivative( const unsigned& ) const ; -// /// Return the derivative wrt to the ith argument -// double getArgumentDerivative( const unsigned& ) const ; -/// Return the derivatives of the distance wrt the cell vectors. This returns false -/// for everything other than DRMSD as these sort of calculations have to be done -/// separately when you use RMSD -// bool getVirial( Tensor& virout ) const ; /// Parse something from the pdb remarks template<class T> bool parse( const std::string&key, T&t, bool ignore_missing=false ); @@ -137,13 +117,9 @@ public: void checkRead(); /// Copy derivatives from one frame to this frame void copyDerivatives( const ReferenceConfiguration* ); -/// Set the atom numbers and the argument names - void setNamesAndAtomNumbers( const std::vector<AtomNumber>& numbers, const std::vector<std::string>& arg ); -/// Set the reference structure (perhaps should also pass the pbc and align and displace ) - void setReferenceConfig( const std::vector<Vector>& pos, const std::vector<double>& arg, const std::vector<double>& metric ); /// Print a pdb file containing the reference configuration void print( const double& lunits, OFile& ofile, const double& time, const double& weight, const double& old_norm ); - void print( const double& lunits, OFile& ofile, const std::string& fmt, const bool& isproperty ); + void print( const double& lunits, OFile& ofile, const std::string& fmt ); /// Get one of the referene arguments virtual double getReferenceArgument( const unsigned& i ) const { plumed_error(); return 0.0; } /// These are overwritten in ReferenceArguments and ReferenceAtoms but are required here @@ -163,20 +139,18 @@ public: bool isDirection() const ; /// Stuff to setup pca virtual void setupPCAStorage( ReferenceValuePack& mypack ){ plumed_error(); } +/// This clears the set of properties that have been attached to the file + void clearAllProperties(); +/// Attach a property to this reference configuration + void attachProperty( const std::string& name, const double& val ); +/// Get the number of properties that are stored in this object + unsigned getNumberOfProperties() const ; +/// Get the inum th property value + double getPropertyValue( const unsigned& inum ) const ; +/// Get the name of the inum th property value + std::string getPropertyName( const unsigned& inum ) const ; }; -// inline -// Vector ReferenceConfiguration::getAtomDerivative( const unsigned& ider ) const { -// plumed_dbg_assert( ider<atom_ders.size() ); -// return atom_ders[ider]; -// } - -// inline -// double ReferenceConfiguration::getArgumentDerivative( const unsigned& ider ) const { -// plumed_dbg_assert( ider<arg_ders.size() ); -// return arg_ders[ider]; -// } - inline void ReferenceConfiguration::setWeight( const double& ww ){ weight=ww; @@ -236,7 +210,20 @@ unsigned ReferenceConfiguration::getNumberOfReferenceArguments() const { return 0; } +inline +unsigned ReferenceConfiguration::getNumberOfProperties() const { + return property_values.size(); +} +inline +double ReferenceConfiguration::getPropertyValue( const unsigned& inum ) const { + plumed_dbg_assert( inum<property_values.size() ); return property_values[inum]; +} + +inline +std::string ReferenceConfiguration::getPropertyName( const unsigned& inum ) const { + plumed_dbg_assert( inum<property_names.size() ); return property_names[inum]; +} } #endif diff --git a/src/tools/PDB.cpp b/src/tools/PDB.cpp index f24146ed8acadeea91d85d9ad335d455c01ba10f..6f75869da49c079daed2c6426bb403578982f5e4 100644 --- a/src/tools/PDB.cpp +++ b/src/tools/PDB.cpp @@ -28,6 +28,38 @@ using namespace std; namespace PLMD{ +void PDB::setAtomNumbers( const std::vector<AtomNumber>& atoms ){ + positions.resize( atoms.size() ); occupancy.resize( atoms.size() ); + beta.resize( atoms.size() ); numbers.resize( atoms.size() ); + for(unsigned i=0;i<atoms.size();++i){ numbers[i]=atoms[i]; beta[i]=1.0; occupancy[i]=1.0; } +} + +void PDB::addArgumentNames( const std::vector<std::string>& argument_names ){ + std::string newrem = "ARG="+argument_names[0]; + for(unsigned i=1;i<argument_names.size();++i) newrem+="," + argument_names[i]; + remark.push_back( newrem ); + for(unsigned i=0;i<argument_names.size();++i) remark.push_back( argument_names[i] + "=0" ); +} + +void PDB::setAtomPositions( const std::vector<Vector>& pos ){ + plumed_dbg_assert( pos.size()==positions.size() ); + for(unsigned i=0;i<positions.size();++i) positions[i]=pos[i]; +} + +void PDB::setArgumentValue( const std::string& argname, const double& val ){ + bool replaced=false; std::string num; Tools::convert( val, num ); + for(unsigned i=0;i<remark.size();++i){ + if( remark[i].find(argname+"=")!=std::string::npos){ + remark[i]=argname + "=" + num; replaced=true; + } + } + plumed_assert( replaced ); +} + +void PDB::addBlockEnd( const unsigned& end ){ + block_ends.push_back( end ); +} + unsigned PDB::getNumberOfAtomBlocks()const{ return block_ends.size(); } diff --git a/src/tools/PDB.h b/src/tools/PDB.h index ef458956042c2ff4ec2a856e89e2222f3d61ef3a..7c242fee93c3fcbc36b69d4adce8490108fc1682 100644 --- a/src/tools/PDB.h +++ b/src/tools/PDB.h @@ -98,6 +98,16 @@ public: /// Return the atom named aname from residue number resnum and chain. /// Chain=="*" matches any chain and makes it equivalent to getNamedAtomFromResidue. AtomNumber getNamedAtomFromResidueAndChain( const std::string& aname, const unsigned& resnum, const std::string& chain ) const; +/// This is used in PLMD::analysis::AnalysisWithDataCollection to add the sizes of the domains for PLMD::MultiRMSD + void addBlockEnd( const unsigned& end ); +/// This is used in PLMD::analysis::AnalysisWithDataCollection to add the names of the arguments + void addArgumentNames( const std::vector<std::string>& argument_names ); +/// This is used in PLMD::analysis::AnalysisWithDataCollection to add the numbers of the atoms + void setAtomNumbers( const std::vector<AtomNumber>& atoms ); +/// This is used in PLMD::analysis::AnalysisWithDataCollection to set the atom positions + void setAtomPositions( const std::vector<Vector>& pos ); +/// This is used in PLMD::analysis::AnalysisWithDataCollection to set the argument values + void setArgumentValue( const std::string& argname, const double& val ); /// Get the extents of the blocks containing the atoms const std::vector<unsigned> & getAtomBlockEnds() const ; /// Get the number of blocks of atoms in the pdb