diff --git a/CEP/BB/BBS3/test/BB3C343.input1 b/CEP/BB/BBS3/test/BB3C343.input1 new file mode 100644 index 0000000000000000000000000000000000000000..4a0419f3c391cc319cadc618cf8fa693b56ee7cf --- /dev/null +++ b/CEP/BB/BBS3/test/BB3C343.input1 @@ -0,0 +1,38 @@ +# 3C343 test with: +# /data/PSS3/diepen/BBS2/3C343/10008336_p1.MS +# nrsrc=2 +# nrstat=14 +# solve for StokesI as function of freq +# model="" +# time domain is all times +# solve for entire time domain + +nrPrediffers=1 # Number of Prediffers + +CTRLparams.nrStrategies=1 # Number of Strategy Controllers +CTRLparams.SC1params.writeParms=T # Does the Controller write the final solution in parmeter table? +CTRLparams.SC1params.strategy="Simple" # Strategy type +CTRLparams.SC1params.maxNrIterations=3 # Maximum number of iterations per time interval +CTRLparams.SC1params.fitCriterion=-1 # Iterate until this absolute value is obtained for the fit (-1 means no fit criterion, iterate 'maxNrIterations' times) +CTRLparams.SC1params.controlParmUpdate=F # Does the controller update the parameters? +CTRLparams.SC1params.solvableParams=["StokesI.*"] +CTRLparams.SC1params.timeInterval=1.0e12 # Time interval +CTRLparams.SC1params.startTime=-1 # Start time (-1 means take beginning of measurement set) +CTRLparams.SC1params.endTime=-1 # End time (-1 means take end of measurement set) +CTRLparams.SC1params.antennas=[0,1,2,3,4,5,6,7,8,9,10,11,12,13] +CTRLparams.SC1params.startFreq=1170703125 # Start frequency +CTRLparams.SC1params.freqLength=8750000 # Size of frequency interval +CTRLparams.SC1params.sources=[] # Solvable source numbers (0 based) +CTRLparams.SC1params.modelType="" # Model type +CTRLparams.SC1params.calcUVW=F # Calculate UVW coordinates? +CTRLparams.SC1params.useAutoCorr=F # Use auto correlations +CTRLparams.SC1params.correlations=[0,3] # Only use XX and YY correlations +CTRLparams.SC1params.useSVD=F # Use Singular Value Decomposition in solve? +CTRLparams.SC1params.MSDBparams.MSName="10008336_p1.MS" # Name of the Measurement Set +CTRLparams.SC1params.MSDBparams.DBHost="localhost" # Parameter database host name +CTRLparams.SC1params.MSDBparams.DBType="aips" # Parameter database type +CTRLparams.SC1params.MSDBparams.DBPwd="" # Parameter database password +CTRLparams.SC1params.MSDBparams.DBMasterPort=13157 # port on which the master db is listening +CTRLparams.SC1params.MSDBparams.meqTableName="10008336" # Meq model table name * +CTRLparams.SC1params.MSDBparams.skyTableName="10008336_gsm" # Sky model table name * +CTRLparams.SC1params.MSDBparams.sourceGroups = ["srcs=[1,2]"] diff --git a/CEP/BB/BBS3/test/BB3C343.input2 b/CEP/BB/BBS3/test/BB3C343.input2 new file mode 100644 index 0000000000000000000000000000000000000000..33543c89f4cee5bc851dd7189beb4bfb2496c76b --- /dev/null +++ b/CEP/BB/BBS3/test/BB3C343.input2 @@ -0,0 +1,39 @@ +# 3C343 test with: +# /data/PSS3/diepen/BBS2/3C343/10008336_p1.MS +# use middle 56 channels +# nrsrc=2 +# nrstat=14 +# solve for phase +# model="AP" +# solve for steps in time + +nrPrediffers=1 # Number of Prediffers + +CTRLparams.nrStrategies=1 # Number of Strategy Controllers +CTRLparams.SC1params.writeParms=T # Does the Controller write the final solution in parmeter table? +CTRLparams.SC1params.strategy="Simple" # Strategy type +CTRLparams.SC1params.maxNrIterations=3 # Maximum number of iterations per time interval +CTRLparams.SC1params.fitCriterion=-1 # Iterate until this absolute value is obtained for the fit (-1 means no fit criterion, iterate 'maxNrIterations' times) +CTRLparams.SC1params.controlParmUpdate=F # Does the controller update the parameters? +CTRLparams.SC1params.solvableParams=["EJ11.phase.*","EJ22.phase.*"] +CTRLparams.SC1params.excludeParams=["EJ11.phase.SR1.SG1","EJ11.phase.SR1","EJ22.phase.SR1.SG1","EJ22.phase.SR1"] +CTRLparams.SC1params.timeInterval=60 # Time interval +CTRLparams.SC1params.startTime=4472025720 # Start time (-1 means take beginning of measurement set) +CTRLparams.SC1params.endTime=4472068820 # End time (-1 means take end of measurement set) +CTRLparams.SC1params.antennas=[0,1,2,3,4,5,6,7,8,9,10,11,12,13] +CTRLparams.SC1params.startFreq=1170703125 # Start frequency +CTRLparams.SC1params.freqLength=8750000 # Size of frequency interval +CTRLparams.SC1params.sources=[] # Solvable source numbers (0 based) +CTRLparams.SC1params.modelType="AP" # Model type +CTRLparams.SC1params.calcUVW=F # Calculate UVW coordinates? +CTRLparams.SC1params.useAutoCorr=F # Use auto correlations +CTRLparams.SC1params.correlations=[0,3] # Only use XX and YY correlations +CTRLparams.SC1params.useSVD=F # Use Singular Value Decomposition in solve? +CTRLparams.SC1params.MSDBparams.MSName="10008336_p1.MS" # Name of the Measurement Set +CTRLparams.SC1params.MSDBparams.DBHost="localhost" # Parameter database host name +CTRLparams.SC1params.MSDBparams.DBType="aips" # Parameter database type +CTRLparams.SC1params.MSDBparams.DBPwd="" # Parameter database password +CTRLparams.SC1params.MSDBparams.DBMasterPort=13157 # port on which the master db is listening +CTRLparams.SC1params.MSDBparams.meqTableName="10008336" # Meq model table name * +CTRLparams.SC1params.MSDBparams.skyTableName="10008336_gsm" # Sky model table name * +CTRLparams.SC1params.MSDBparams.sourceGroups = ["srcs=[1,2]"] diff --git a/CEP/BB/BBS3/test/run.BB3C343 b/CEP/BB/BBS3/test/run.BB3C343 new file mode 100755 index 0000000000000000000000000000000000000000..ab594ac53aa3f560514ab56d38227b4e7e869967 --- /dev/null +++ b/CEP/BB/BBS3/test/run.BB3C343 @@ -0,0 +1,127 @@ +#!/bin/sh +# this script must be called with nriter and usernm +# This script does the same as the run.3C343 script. However, +# this script uses the whole BBS3 system, instead of just +# the Prediffer and Solver class. +# It uses the input parameters sets in files: BB3C343.input1 +# and BB3C343.input2. + +if [ "$#" != "2" ]; then + echo "run as: run.3C343 usernm dbtype" + exit 1 +fi + +usernm=$1 +dbtype=$2 + +# Define functions to create the parm tables. +beginParmdbInputFile () { + rm -f fill.parmdb + add2file "create $*" + add2file "connect $*" + add2file "clear" +} +add2file () { + echo $* >> fill.parmdb +} +applyfile () { + add2file "quit" + ./parmdb < fill.parmdb +} +makeMeq () { + diff="1e-6" + if [ "$#" -eq "1" ]; then + diff=$1 + fi + add2file "adddef frot values=0, diff=${diff}" + add2file "adddef drot values=0, diff=${diff}" + add2file "adddef dell values=0, diff=${diff}" + add2file "adddef gain.11 values=1, diff=${diff}" + add2file "adddef gain.22 values=1, diff=${diff}" + add2file "adddef EJ11.ampl values=1, diff=${diff}" + add2file "adddef EJ12.ampl values=0, diff=${diff}" + add2file "adddef EJ21.ampl values=0, diff=${diff}" + add2file "adddef EJ22.ampl values=1, diff=${diff}" + add2file "adddef EJ11.phase values=0, diff=${diff}" + add2file "adddef EJ12.phase values=0, diff=${diff}" + add2file "adddef EJ21.phase values=0, diff=${diff}" + add2file "adddef EJ22.phase values=0, diff=${diff}" +} +makeGsm () { + diff="1e-6" + if [ "$#" -eq "1" ]; then + diff=$1 + fi + add2file "adddef RA.CP1 values=4.356645791155902, srcnr=0, diff=${diff}, diff_rel=F" + add2file "adddef DEC.CP1 values=1.092208429052697, srcnr=0, diff=${diff}, diff_rel=F" +# add2file "adddef RA.CP1 values=4.356645, srcnr=0, diff=${diff}, diff_rel=F" +# add2file "adddef DEC.CP1 values=1.092208, srcnr=0, diff=${diff}, diff_rel=F" + add2file "adddef StokesI.CP1 values=1.0, srcnr=0, diff=${diff} " + add2file "adddef StokesQ.CP1 values=0, srcnr=0, diff=${diff} " + add2file "adddef StokesU.CP1 values=0, srcnr=0, diff=${diff} " + add2file "adddef StokesV.CP1 values=0, srcnr=0, diff=${diff} " + add2file "adddef RA.CP2 values=4.3396003966265599, srcnr=1, diff=${diff}, diff_rel=F" + add2file "adddef DEC.CP2 values=1.0953677174056471, srcnr=1, diff=${diff}, diff_rel=F" +# add2file "adddef RA.CP2 values=4.339600, srcnr=1, diff=${diff}, diff_rel=F" +# add2file "adddef DEC.CP2 values=1.095367, srcnr=1, diff=${diff}, diff_rel=F" + add2file "adddef StokesI.CP2 values=1.0, srcnr=1, diff=${diff} " + add2file "adddef StokesQ.CP2 values=0, srcnr=1, diff=${diff} " + add2file "adddef StokesU.CP2 values=0, srcnr=1, diff=${diff} " + add2file "adddef StokesV.CP2 values=0, srcnr=1, diff=${diff} " +} + +makeGsm2 () { + diff="1e-6" + if [ "$#" -eq "1" ]; then + diff=$1 + fi + add2file "adddef RA.CP1 values=4.356645791155902, srcnr=0, diff=${diff}, diff_rel=F" + add2file "adddef DEC.CP1 values=1.092208429052697, srcnr=0, diff=${diff}, diff_rel=F" +# add2file "adddef RA.CP1 values=4.356645, srcnr=0, diff=${diff}, diff_rel=F" +# add2file "adddef DEC.CP1 values=1.092208, srcnr=0, diff=${diff}, diff_rel=F" + add2file "adddef StokesI.CP1 nx=2, values=[1.0,0.], srcnr=0, diff=${diff} " + add2file "adddef StokesQ.CP1 values=0, srcnr=0, diff=${diff} " + add2file "adddef StokesU.CP1 values=0, srcnr=0, diff=${diff} " + add2file "adddef StokesV.CP1 values=0, srcnr=0, diff=${diff} " + add2file "adddef RA.CP2 values=4.3396003966265599, srcnr=1, diff=${diff}, diff_rel=F" + add2file "adddef DEC.CP2 values=1.0953677174056471, srcnr=1, diff=${diff}, diff_rel=F" +# add2file "adddef RA.CP2 values=4.339600, srcnr=1, diff=${diff}, diff_rel=F" +# add2file "adddef DEC.CP2 values=1.095367, srcnr=1, diff=${diff}, diff_rel=F" + add2file "adddef StokesI.CP2 nx=4, values=[1.0,0.,0.,0.], srcnr=1, diff=${diff} " + add2file "adddef StokesQ.CP2 values=0, srcnr=1, diff=${diff} " + add2file "adddef StokesU.CP2 values=0, srcnr=1, diff=${diff} " + add2file "adddef StokesV.CP2 values=0, srcnr=1, diff=${diff} " +} + + +echo " Generating parm tables ..." +# use functions to initialize parmtables +beginParmdbInputFile "dbtype='$dbtype', user='$usernm', tablename='10008336'" +makeMeq +applyfile + +beginParmdbInputFile "dbtype='$dbtype', user='$usernm', tablename='10008336_gsm'" +makeGsm2 +applyfile + +ln -s /data/PSS3/diepen/BBS2/3C343/10008336_p1.MS + +./clearBB + +# Solve for StokesI as function of freq. +time ./BBS3 ../../test/BB3C343.input1 $usernm + +# Create a new gsm table. +beginParmdbInputFile "dbtype='$dbtype', user='$usernm', tablename='10008336_gsm'" +makeGsm +applyfile + +./clearBB + +# Solve for StokesI (and save that). +time ./BBS3 ../../test/BB3C343.input1 $usernm + +./clearBB + +# Solve for phase +time ./BBS3 ../../test/BB3C343.input2 $usernm diff --git a/CEP/BB/BBS3/test/t3C343.cc b/CEP/BB/BBS3/test/t3C343.cc index 98ce4e4c0b7648694cd961c5b8d9d741300e25d4..33dd6334465324b5af879cec30509f6a639775df 100644 --- a/CEP/BB/BBS3/test/t3C343.cc +++ b/CEP/BB/BBS3/test/t3C343.cc @@ -108,7 +108,7 @@ void doSolveStep (Prediffer& pre1, const vector<string>& solv, while (timeStart < timeLast) { // Set a domain. Use middle 56 channels and 2 times per step. pre1.setDomain (1.18e9-59.5*156250, 56*156250, timeStart, timeStep); - + // Get the ParmData from the Prediffer and send it to the solver. Solver solver; solver.initSolvableParmData (1);