Build: #2 was successful

Job: Tag Branch for Packages was successful

Stages & jobs

  1. Tag Branch

  2. Default Stage

  3. Create Critial Test Plan Branch

Build log

The build generated 2,101 lines of output.The output is too long and has been truncated to the last 1,000 lines. Download or view full build log.

02-May-2019 19:43:13 gcwrap/install/pipeline.bld                        |    2 +-
02-May-2019 19:43:13 gcwrap/python/scripts/casa_system.py               |    3 +-
02-May-2019 19:43:13 gcwrap/python/scripts/init_crashrpt.py             |    2 +
02-May-2019 19:43:13 gcwrap/python/scripts/init_docs.py                 |   15 +-
02-May-2019 19:43:13 gcwrap/python/scripts/init_logger.py               |    2 +-
02-May-2019 19:43:13 gcwrap/python/scripts/init_system.py               |    2 +-
02-May-2019 19:43:13 gcwrap/python/scripts/init_telemetry.py.in         |    3 +-
02-May-2019 19:43:13 gcwrap/python/scripts/init_welcome.py              |    2 +-
02-May-2019 19:43:13 .../regressions/pipelineTest_regression_almasd.py  |   24 +-
02-May-2019 19:43:13 gcwrap/python/scripts/telemetry.py                 |   12 +-
02-May-2019 19:43:13 gcwrap/python/scripts/tests/CMakeLists.txt         |    1 +
02-May-2019 19:43:13 .../scripts/tests/test_mstransform_subset.py       | 6008 ++++++++++++++++++++
02-May-2019 19:43:13 gcwrap/tasks/flagdata.xml                          | 2650 +++++----
02-May-2019 19:43:13 gcwrap/tasks/importasap.xml                        |    2 +-
02-May-2019 19:43:13 gcwrap/tasks/tclean.xml                            |   24 +-
02-May-2019 19:43:13 gcwrap/tools/CMakeLists.txt                        |    1 +
02-May-2019 19:43:13 gcwrap/tools/casaswig_types.cc                     |   29 +
02-May-2019 19:43:13 gcwrap/tools/casaswig_types.h                      |   13 +
02-May-2019 19:43:13 gcwrap/tools/images/coordsys.xml                   |   16 +-
02-May-2019 19:43:13 gcwrap/tools/synthesis/imager.xml                  |    3 +-
02-May-2019 19:43:13 gcwrap/tools/synthesis/simulator.xml               |    2 +-
02-May-2019 19:43:13 gcwrap/tools/utils/utils.xml                       |   10 +
02-May-2019 19:43:13 gcwrap/tools/utils/utils_cmpt.cc                   |   13 +-
02-May-2019 19:43:13 73 files changed, 8883 insertions(+), 1659 deletions(-)
02-May-2019 19:43:13 create mode 100644 code/casatools/Data/Opt.h
02-May-2019 19:43:13 create mode 100644 code/casatools/protos/shutdown.proto
02-May-2019 19:43:13 create mode 100644 code/display/QtViewer/grpcViewerAdaptor.cc
02-May-2019 19:43:13 create mode 100644 code/display/QtViewer/grpcViewerAdaptor.qo.h
02-May-2019 19:43:13 create mode 100644 code/display/protos/img.proto
02-May-2019 19:43:13 create mode 100755 code/install/resolvegitrevision.pl
02-May-2019 19:43:13 create mode 100644 code/synthesis/MeasurementEquations/test/tPredictComp.cc
02-May-2019 19:43:13 create mode 100644 gcwrap/python/scripts/tests/test_mstransform_subset.py
02-May-2019 19:43:13 create mode 100644 gcwrap/tools/casaswig_types.cc
02-May-2019 19:43:13
02-May-2019 19:43:13 edu.nrao.gradle.casa.build.GitRepository@29507933
02-May-2019 19:43:13 getLastTag called with
02-May-2019 19:43:13 branch: ARD-20
02-May-2019 19:43:13 env: [bamboo_planRepository_1_branch=ARD-20, PATH=/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin, bamboo_planRepository_2_branch=master, HISTCONTROL=ignoredups, bamboo_repository_revision_number=661dc3b4e421927198db45ccdc85e3f9a420f7b1, bamboo_planRepository_1_branchDisplayName=ARD-20, bamboo_repository_20938876_previous_revision_number=f58f7395569d7d77758ab45e8beeb376e7ec00ae, GUESTFISH_RESTORE=\e[0m, bamboo_repository_20938876_git_username=, WRAPPER_BITS=32, bamboo_buildKey=ARD-BPT16-TBFP, bamboo_repository_34079378_git_repositoryUrl=ssh://git@open-bitbucket.nrao.edu:7999/casa/casa.git, PROMPT_COMMAND=history -a, PWD=/export/home/cbt-el7-4/bamboohome/xml-data/build-dir/ARD-BPT16-TBFP/casa-pkg/gradle/casa-tag, bamboo_capability_system_jdk_JDK_1_8_0_131=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64, bamboo_planRepository_2_branchDisplayName=master, HISTTIMEFORMAT=%Y-%m-%d %T: , bamboo_shortJobName=Tag Branch for Packages, bamboo_buildResultsUrl=https://open-bamboo.nrao.edu/browse/ARD-BPT16-TBFP-2, bamboo_planRepository_repositoryUrl=ssh://git@open-bitbucket.nrao.edu:7999/casa/casa.git, LESSOPEN=||/usr/bin/lesspipe.sh %s, QT_GRAPHICSSYSTEM_CHECKED=1, QTINC=/usr/lib64/qt-3.3/include, bamboo_agentId=6160386, bamboo_repository_34079378_branch_name=ARD-20, GUESTFISH_INIT=\e[1;34m, bamboo_planRepository_revision=661dc3b4e421927198db45ccdc85e3f9a420f7b1, bamboo_casaadm_password=********, bamboo_planRepository_previousRevision=32072d8c32e3102b351ff592c5120674a207975e, bamboo_repository_20938876_git_branch=master, bamboo_repository_20938876_name=OPEN-CASA-PKG, bamboo_capability_system_jdk_JDK_1_8_0_144=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64, bamboo_repository_branch_name=ARD-20, SHLVL=3, bamboo_capability_system_jdk_JDK_1_8_0_141=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-2.b16.el7_4.x86_64, QT_PLUGIN_PATH=/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins, LOADEDMODULES=, WRAPPER_OS=linux, HISTSIZE=200000, TERM=xterm-256color, bamboo_dependenciesDisabled=false, XDG_SESSION_ID=3, bamboo_capability_isCIMachine=true, GRADLE_USER_HOME=/users/casaci/.gradle.el6.cbt-el7-4, bamboo_planRepository_branch=ARD-20, bamboo_capability_tag=true, bamboo_capability_system_jdk_JDK_1_8_0_151=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64, bamboo_planRepository_branchName=ARD-20, bamboo_planRepository_1_type=bbserver, WRAPPER_FILE_SEPARATOR=/, bamboo_repository_20938876_revision_number=161216ae6b1e3a5f3611493b5c840cdd43234dd6, bamboo_capability_system_jdk_JDK=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64, SSH_CLIENT=10.2.103.75 53840 22, SSH_TTY=/dev/pts/0, CVS_RSH=ssh, WRAPPER_PATH_SEPARATOR=:, bamboo_hg_cache_directory=/export/home/cbt-el7-4/bamboohome/xml-data/build-dir/_hg-repositories-cache, bamboo_planRepository_type=bbserver, bamboo_planRepository_1_username=, bamboo_ManualBuildTriggerReason_userName=pjaganna, bamboo_git_cache_directory=/export/home/cbt-el7-4/bamboohome/xml-data/build-dir/_git-repositories-cache, bamboo_planRepository_2_branchName=master, bamboo_capability_system_builder_ant_Ant=/usr, bamboo_tmp_directory=/export/home/cbt-el7-4/bamboohome/temp, SSH_CONNECTION=10.2.103.75 53840 10.2.96.193 22, bamboo_planKey=ARD-BPT16, bamboo_planRepository_username=, NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat, BASH_FUNC_module()=() {  eval `/usr/bin/modulecmd bash $*`
02-May-2019 19:43:13 }, bamboo_capability_system_jdk_JDK_1_8_0_161=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64, bamboo_repository_34079378_revision_number=661dc3b4e421927198db45ccdc85e3f9a420f7b1, bamboo_planRepository_1_branchName=ARD-20, bamboo_capability_buildmachinetype=build, bamboo_repository_34079378_git_branch=ARD-20, XDG_DATA_DIRS=/users/casaci/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/, bamboo_resultsUrl=https://open-bamboo.nrao.edu/browse/ARD-BPT16-TBFP-2, MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles, bamboo_build_working_directory=/export/home/cbt-el7-4/bamboohome/xml-data/build-dir/ARD-BPT16-TBFP, bamboo_planRepository_1_name=OPEN-CASA-FULL, QT_GRAPHICSSYSTEM=native, bamboo_shortPlanName=ARD-20, bamboo_capability_hostname=cbt-el7-4.cv.nrao.edu, MAIL=/var/spool/mail/casaci, bamboo_planRepository_2_username=, bamboo_repository_34079378_git_username=, bamboo_planRepository_name=OPEN-CASA-FULL, bamboo_repository_34079378_previous_revision_number=32072d8c32e3102b351ff592c5120674a207975e, LOGNAME=casaci, bamboo_buildNumber=2, SHELL=/bin/bash, bamboo_planName=ARD - Build And Package - ARD-20, bamboo_shortPlanKey=BPT16, OLDPWD=/usr/lib/jvm/gradle-3.2.1, bamboo_shortJobKey=TBFP, bamboo_planRepository_2_name=OPEN-CASA-PKG, SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass, bamboo_repository_previous_revision_number=32072d8c32e3102b351ff592c5120674a207975e, bamboo_buildTimeStamp=2019-05-02T19:42:53.732-04:00, bamboo_repository_20938876_branch_name=master, bamboo_buildResultKey=ARD-BPT16-TBFP-2, bamboo_repository_git_branch=ARD-20, bamboo_capability_system_jdk_JDK_1_8_0_102=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64, bamboo_buildPlanName=ARD - Build And Package - ARD-20 - Tag Branch for Packages, LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:, bamboo_planRepository_1_revision=661dc3b4e421927198db45ccdc85e3f9a420f7b1, bamboo_capability_system_hg_executable=/bin/hg, bamboo_repository_name=OPEN-CASA-PKG, bamboo_planRepository_2_previousRevision=f58f7395569d7d77758ab45e8beeb376e7ec00ae, XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt, LANG=en_US.UTF-8, bamboo_buildFailed=false, HISTFILESIZE=250000, bamboo_agentWorkingDirectory=/export/home/cbt-el7-4/bamboohome/xml-data/build-dir, bamboo_capability_system_git_executable=/bin/git, bamboo_planRepository_2_revision=161216ae6b1e3a5f3611493b5c840cdd43234dd6, bamboo_capability_system_jdk_JDK_1_8_0_111=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-2.b15.el7_3.x86_64, bamboo_planRepository_1_previousRevision=32072d8c32e3102b351ff592c5120674a207975e, bamboo_repository_git_username=, bamboo_capability_operating_system=EL7, bamboo_planRepository_branchDisplayName=ARD-20, bamboo_capability_project=CASA, bamboo_planRepository_2_type=bbserver, GUESTFISH_PS1=\[\e[1;32m\]><fs>\[\e[0;31m\] , bamboo_plan_storageTag=plan-33887019, USER=casaci, bamboo_planRepository_2_repositoryUrl=ssh://git@open-bitbucket.nrao.edu:7999/casa/casa-pkg.git, bamboo_repository_git_repositoryUrl=ssh://git@open-bitbucket.nrao.edu:7999/casa/casa.git, bamboo_repository_34079378_name=OPEN-CASA-FULL, bamboo_working_directory=/export/home/cbt-el7-4/bamboohome/xml-data/build-dir/ARD-BPT16-TBFP, HOSTNAME=cbt-el7-4, QTDIR=/usr/lib64/qt-3.3, MODULESHOME=/usr/share/Modules, bamboo_planRepository_1_repositoryUrl=ssh://git@open-bitbucket.nrao.edu:7999/casa/casa.git, bamboo_capability_system_jdk_JDK_1_8=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-1.b14.el7_2.x86_64, WRAPPER_ARCH=x86, KDEDIRS=/usr, bamboo_repository_20938876_git_repositoryUrl=ssh://git@open-bitbucket.nrao.edu:7999/casa/casa-pkg.git, XDG_RUNTIME_DIR=/run/user/9285, GUESTFISH_OUTPUT=\e[0m, HOME=/users/casaci, QTLIB=/usr/lib64/qt-3.3/lib]
02-May-2019 19:43:13 sourceDir: /export/home/cbt-el7-4/bamboohome/xml-data/build-dir/ARD-BPT16-TBFP/taggitworkdir/casa
02-May-2019 19:43:13 Resolving CAS-/feature/bugfix tag
02-May-2019 19:43:13 Branch parts: [ARD-20]
02-May-2019 19:43:13 Checking for an existing tag for the branch
02-May-2019 19:43:13 tagGrep: grep test-ARD-20
02-May-2019 19:43:13 java.lang.UNIXProcess@4e075041 | java.lang.UNIXProcess@19da8923 | java.lang.UNIXProcess@7e6b300a | java.lang.UNIXProcess@27e75c49
02-May-2019 19:43:13 Checking out ARD-20
02-May-2019 19:43:13 Switched to branch 'ARD-20'
02-May-2019 19:43:13 Your branch is behind 'origin/ARD-20' by 11 commits, and can be fast-forwarded.
02-May-2019 19:43:13   (use "git pull" to update your local branch)
02-May-2019 19:43:13
02-May-2019 19:43:13 Updating ARD-20
02-May-2019 19:43:14 Updating 32072d8..661dc3b
02-May-2019 19:43:14 Fast-forward
02-May-2019 19:43:14 code/synthesis/CMakeLists.txt                      |   3 +
02-May-2019 19:43:14 code/synthesis/TransformMachines/BeamCalc.cc       |  14 +
02-May-2019 19:43:14 .../VLACalcIlluminationConvFunc.cc                 |  18 +-
02-May-2019 19:43:14 code/synthesis/TransformMachines/ZernikeCalc.cc    | 444 +++++++++++++++++++++
02-May-2019 19:43:14 code/synthesis/TransformMachines/ZernikeCalc.h     |  99 +++++
02-May-2019 19:43:14 .../TransformMachines/ZernikeCalcParams.cc         |  55 +++
02-May-2019 19:43:14 code/synthesis/TransformMachines2/AWProjectFT.cc   |   2 +-
02-May-2019 19:43:14 code/synthesis/TransformMachines2/EVLAAperture.cc  |   7 +-
02-May-2019 19:43:14 .../VLACalcIlluminationConvFunc.cc                 |  64 ++-
02-May-2019 19:43:14 .../VLACalcIlluminationConvFunc.h                  |   3 +-
02-May-2019 19:43:14 10 files changed, 663 insertions(+), 46 deletions(-)
02-May-2019 19:43:14 create mode 100644 code/synthesis/TransformMachines/ZernikeCalc.cc
02-May-2019 19:43:14 create mode 100644 code/synthesis/TransformMachines/ZernikeCalc.h
02-May-2019 19:43:14 create mode 100644 code/synthesis/TransformMachines/ZernikeCalcParams.cc
02-May-2019 19:43:14
02-May-2019 19:43:14 Constructing a new tag based on 5.5.0-132-test-ARD-20-1
02-May-2019 19:43:14 Branch: ARD-20
02-May-2019 19:43:14 ARD- detected
02-May-2019 19:43:14 Prefix: 5.5.0-132-test-ARD-20
02-May-2019 19:43:14 5.5.0-132-test-ARD-20-2
02-May-2019 19:43:14 Last tag: 5.5.0-132-test-ARD-20-1
02-May-2019 19:43:14 Branch: ARD-20
02-May-2019 19:43:14 Comparing tag to branch with: git diff --exit-code 5.5.0-132-test-ARD-20-1 ARD-20
02-May-2019 19:43:14 diff --git a/code/synthesis/CMakeLists.txt b/code/synthesis/CMakeLists.txt
02-May-2019 19:43:14 index 074987b..3fcfc97 100644
02-May-2019 19:43:14 --- a/code/synthesis/CMakeLists.txt
02-May-2019 19:43:14 +++ b/code/synthesis/CMakeLists.txt
02-May-2019 19:43:14 @@ -87,6 +87,8 @@ casa_add_library( synthesis
02-May-2019 19:43:14 #  TransformMachines/cDataToGridImpl.cc
02-May-2019 19:43:14    TransformMachines/BeamCalc.cc
02-May-2019 19:43:14    TransformMachines/BeamCalcParams.cc
02-May-2019 19:43:14 +  TransformMachines/ZernikeCalc.cc
02-May-2019 19:43:14 +  TransformMachines/ZernikeCalcParams.cc
02-May-2019 19:43:14    TransformMachines/DBeamSkyJones.cc
02-May-2019 19:43:14    TransformMachines/FTMachine.cc
02-May-2019 19:43:14    TransformMachines/GridFT.cc
02-May-2019 19:43:14 @@ -729,6 +731,7 @@ install (FILES
02-May-2019 19:43:14         )
02-May-2019 19:43:14 install (FILES
02-May-2019 19:43:14         TransformMachines/BeamCalc.h
02-May-2019 19:43:14 +        TransformMachines/ZernikeCalc.h
02-May-2019 19:43:14         TransformMachines/BeamSkyJones.h
02-May-2019 19:43:14         TransformMachines/BeamSquint.h
02-May-2019 19:43:14         TransformMachines/CFCache.h
02-May-2019 19:43:14 diff --git a/code/synthesis/TransformMachines/BeamCalc.cc b/code/synthesis/TransformMachines/BeamCalc.cc
02-May-2019 19:43:14 index 88d47dc..6ccacb7 100644
02-May-2019 19:43:14 --- a/code/synthesis/TransformMachines/BeamCalc.cc
02-May-2019 19:43:14 +++ b/code/synthesis/TransformMachines/BeamCalc.cc
02-May-2019 19:43:14 @@ -238,6 +238,20 @@ namespace casa{
02-May-2019 19:43:14           //antRespPath_p = fullFileName + "/data/alma/responses";
02-May-2019 19:43:14           antRespPath_p = fullFileName + "/alma/responses";
02-May-2019 19:43:14         }
02-May-2019 19:43:14 +        else if(obsName_p=="MeerKAT" && antType_p=="STANDARD"){
02-May-2019 19:43:14 +          os <<  LogIO::NORMAL << "Will use default geometries for MeerKAT STANDARD by spoofing EVLA." << LogIO::POST;
02-May-2019 19:43:14 +          BeamCalc_NumBandCodes_p = EVLABeamCalc_NumBandCodes;
02-May-2019 19:43:14 +          BeamCalcGeometries_p.resize(BeamCalc_NumBandCodes_p);
02-May-2019 19:43:14 +          bandMinFreq_p.resize(BeamCalc_NumBandCodes_p);
02-May-2019 19:43:14 +          bandMaxFreq_p.resize(BeamCalc_NumBandCodes_p);
02-May-2019 19:43:14 +          for(uInt i=0; i<BeamCalc_NumBandCodes_p; i++){
02-May-2019 19:43:14 +            copyBeamCalcGeometry(&BeamCalcGeometries_p[i], &EVLABeamCalcGeometryDefaults[i]);
02-May-2019 19:43:14 +            bandMinFreq_p[i] = EVLABandMinFreqDefaults[i];
02-May-2019 19:43:14 +            bandMaxFreq_p[i] = EVLABandMaxFreqDefaults[i];
02-May-2019 19:43:14 +          }
02-May-2019 19:43:14 +          //antRespPath_p = fullFileName + "/data/nrao/VLA";
02-May-2019 19:43:14 +          antRespPath_p = fullFileName + "/nrao/VLA";
02-May-2019 19:43:14 +        }
02-May-2019 19:43:14         else{
02-May-2019 19:43:14           String mesg="We don't have any antenna ray tracing parameters available for observatory "
02-May-2019 19:43:14             +obsName_p+", antenna type "+antType_p;
02-May-2019 19:43:14 diff --git a/code/synthesis/TransformMachines/VLACalcIlluminationConvFunc.cc b/code/synthesis/TransformMachines/VLACalcIlluminationConvFunc.cc
02-May-2019 19:43:14 index b825f73..1593677 100644
02-May-2019 19:43:14 --- a/code/synthesis/TransformMachines/VLACalcIlluminationConvFunc.cc
02-May-2019 19:43:14 +++ b/code/synthesis/TransformMachines/VLACalcIlluminationConvFunc.cc
02-May-2019 19:43:14 @@ -56,7 +56,7 @@ namespace casa{
02-May-2019 19:43:14    {
02-May-2019 19:43:14
02-May-2019 19:43:14      LogIO logIO(LogOrigin("VLACalcIlluminationConvFunc","ctor"));
02-May-2019 19:43:14 -    ap.oversamp = 3;
02-May-2019 19:43:14 +    ap.oversamp = 10;
02-May-2019 19:43:14      ap.x0=-13.0; ap.y0=-13.0;
02-May-2019 19:43:14      ap.dx=0.5; ap.dy=0.5;
02-May-2019 19:43:14
02-May-2019 19:43:14 @@ -166,15 +166,15 @@ namespace casa{
02-May-2019 19:43:14      regridAperture(skyCS, skyShape, uvGrid, pa, doSquint, bandID, muellerTerm,freqVal);
02-May-2019 19:43:14      
02-May-2019 19:43:14      pbImage.setCoordinateInfo(skyCS);
02-May-2019 19:43:14 -    // {
02-May-2019 19:43:14 -    //   string name("aperture.im");
02-May-2019 19:43:14 -    //   storeImg(name,*(ap.aperture));
02-May-2019 19:43:14 -    // }
02-May-2019 19:43:14 +    {
02-May-2019 19:43:14 +      string name("aperture.im");
02-May-2019 19:43:14 +      storeImg(name,*(ap.aperture));
02-May-2019 19:43:14 +    }
02-May-2019 19:43:14      fillPB(*(ap.aperture),pbImage);
02-May-2019 19:43:14 -    //{
02-May-2019 19:43:14 -    //   string name("apb.im");
02-May-2019 19:43:14 -    //   storeImg(name,pbImage);
02-May-2019 19:43:14 -    //}
02-May-2019 19:43:14 +    {
02-May-2019 19:43:14 +      string name("apb.im");
02-May-2019 19:43:14 +      storeImg(name,pbImage);
02-May-2019 19:43:14 +    }
02-May-2019 19:43:14    }
02-May-2019 19:43:14    //--------------------------------------------------------------------------
02-May-2019 19:43:14    // Write PB^2 to the pbImage
02-May-2019 19:43:14 diff --git a/code/synthesis/TransformMachines/ZernikeCalc.cc b/code/synthesis/TransformMachines/ZernikeCalc.cc
02-May-2019 19:43:14 new file mode 100644
02-May-2019 19:43:14 index 0000000..a8187d5
02-May-2019 19:43:14 --- /dev/null
02-May-2019 19:43:14 +++ b/code/synthesis/TransformMachines/ZernikeCalc.cc
02-May-2019 19:43:14 @@ -0,0 +1,444 @@
02-May-2019 19:43:14 +//# ZernikeCalc.cc: Implementation for ZernikeCalc
02-May-2019 19:43:14 +//# Copyright (C) 1996,1997,1998,1999,2000,2002
02-May-2019 19:43:14 +//# Associated Universities, Inc. Washington DC, USA.
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# This library is free software; you can redistribute it and/or modify it
02-May-2019 19:43:14 +//# under the terms of the GNU Library General Public License as published by
02-May-2019 19:43:14 +//# the Free Software Foundation; either version 2 of the License, or (at your
02-May-2019 19:43:14 +//# option) any later version.
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# This library is distributed in the hope that it will be useful, but WITHOUT
02-May-2019 19:43:14 +//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
02-May-2019 19:43:14 +//# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
02-May-2019 19:43:14 +//# License for more details.
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# You should have received a copy of the GNU Library General Public License
02-May-2019 19:43:14 +//# along with this library; if not, write to the Free Software Foundation,
02-May-2019 19:43:14 +//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# Correspondence concerning AIPS++ should be adressed as follows:
02-May-2019 19:43:14 +//#        Internet email: aips2-request@nrao.edu.
02-May-2019 19:43:14 +//#        Postal address: AIPS++ Project Office
02-May-2019 19:43:14 +//#                        National Radio Astronomy Observatory
02-May-2019 19:43:14 +//#                        520 Edgemont Road
02-May-2019 19:43:14 +//#                        Charlottesville, VA 22903-2475 USA
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# $Id$
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +#include <casa/math.h>
02-May-2019 19:43:14 +#include <math.h>
02-May-2019 19:43:14 +//#include <images/Images/TempImage.h>
02-May-2019 19:43:14 +//#include <imageanalysis/ImageAnalysis/AntennaResponses.h>
02-May-2019 19:43:14 +//#include <tables/Tables/TableProxy.h>
02-May-2019 19:43:14 +//#include <casa/Exceptions.h>
02-May-2019 19:43:14 +//#include <casa/Containers/ValueHolder.h>
02-May-2019 19:43:14 +//#include <casa/Arrays/Array.h>
02-May-2019 19:43:14 +//#include <synthesis/TransformMachines/SynthesisError.h>
02-May-2019 19:43:14 +//#include <synthesis/TransformMachines/ZernikeCalc.h>
02-May-2019 19:43:14 +//#include <casa/OS/Timer.h>
02-May-2019 19:43:14 +//#include <casa/System/AppState.h>
02-May-2019 19:43:14 +//#include <casa/OS/Directory.h>
02-May-2019 19:43:14 +#include <images/Images/TempImage.h>
02-May-2019 19:43:14 +#include <synthesis/TransformMachines/ZernikeCalc.h>
02-May-2019 19:43:14 +#include <casacore/scimath/Mathematics/Combinatorics.h>
02-May-2019 19:43:14 +#include <synthesis/TransformMachines2/Utils.h>
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +using namespace std;
02-May-2019 19:43:14 +using namespace casacore;
02-May-2019 19:43:14 +namespace casa {
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   ZernikeCalc* ZernikeCalc::instance_p = 0;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   ZernikeCalc* ZernikeCalc::Instance(){
02-May-2019 19:43:14 +      if(instance_p==0){
02-May-2019 19:43:14 +         instance_p = new ZernikeCalc();
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +      return instance_p;
02-May-2019 19:43:14 +   }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   Int ZernikeCalc::rcoeff(int m, int n, Vector< Vector<float> > *xCoords,
02-May-2019 19:43:14 +         Vector< Vector<float> > *yCoords, int xSize, int ySize,
02-May-2019 19:43:14 +         Vector< Vector<double> > *R)
02-May-2019 19:43:14 +   {
02-May-2019 19:43:14 +      // Vector< Vector<double> > rho(xSize, Vector<double>(ySize, 0));
02-May-2019 19:43:14 +      Vector< Vector <double> > rho(xSize);
02-May-2019 19:43:14 +      for (int ii=0; ii<xSize; ii++){
02-May-2019 19:43:14 +         rho[ii].resize(ySize);
02-May-2019 19:43:14 +         for (int jj=0; jj<ySize; jj++)
02-May-2019 19:43:14 +            rho[ii][jj]=0;
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      if (abs(n-m) % 2) {
02-May-2019 19:43:14 +         return 0;
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // int cx, cy;
02-May-2019 19:43:14 +      // cx = xSize/2;
02-May-2019 19:43:14 +      // cy = ySize/2;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      for (int ii = 0; ii < xSize; ii++) {
02-May-2019 19:43:14 +         for(int jj = 0; jj < ySize; jj++) {
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +            rho[ii][jj] = sqrt(pow((*xCoords)[ii][jj],2) + pow((*yCoords)[ii][jj], 2));
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // for (int ii = 0; ii < xSize; ii++) {
02-May-2019 19:43:14 +      //   for(int jj = 0; jj < ySize; jj++) {
02-May-2019 19:43:14 +      //      if (sqrt(pow((ii-cx),2)+ pow((jj-cy),2)) > cx) {
02-May-2019 19:43:14 +      //         rho[ii][jj] = 0;
02-May-2019 19:43:14 +      //      }
02-May-2019 19:43:14 +      //   }
02-May-2019 19:43:14 +      // }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      int lim = (int)((n-m)/2) + 1;
02-May-2019 19:43:14 +      double num = 0, den = 0, num2 = 0;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +//#pragma omp parallel for schedule(dynamic)
02-May-2019 19:43:14 +      for(int ll = 0; ll < lim; ll++) {
02-May-2019 19:43:14 +         den = boost::math::factorial<double>(ll) * boost::math::factorial<double>(((n+m)/2)-ll) *\
02-May-2019 19:43:14 +               boost::math::factorial<double>(((n-m)/2)-ll);
02-May-2019 19:43:14 +         num2 = pow(-1.0,(double)ll) * boost::math::factorial<double>(n-ll); // num2 here is to reduce the compute within the i-j loop below
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         for (int ii = 0; ii < xSize; ii++) {
02-May-2019 19:43:14 +            for(int jj = 0; jj < ySize; jj++) {
02-May-2019 19:43:14 +               num = pow(rho[ii][jj], (double)(n-(2*ll))) * num2;
02-May-2019 19:43:14 +               (*R)[ii][jj] += num/den;
02-May-2019 19:43:14 +            }
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +      return 0;
02-May-2019 19:43:14 +   }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   Int ZernikeCalc::zernikeTerm(Vector<int> *m, Vector<int> *n, Vector<double> *ampR, Vector<double> *ampI,
02-May-2019 19:43:14 +         Vector< Vector<float> > *xCoords, Vector< Vector<float> > *yCoords, int xSize, int ySize,
02-May-2019 19:43:14 +         Vector< Vector<Complex> > *zTerm)
02-May-2019 19:43:14 +   {
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // Vector< Vector<double>> phi(xSize, Vector<double> (ySize,0));
02-May-2019 19:43:14 +      Vector< Vector<double>> phi;
02-May-2019 19:43:14 +      phi.resize(xSize);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      for (int ii = 0; ii < xSize; ii++) {
02-May-2019 19:43:14 +         phi[ii].resize(ySize);
02-May-2019 19:43:14 +         for(int jj = 0; jj < ySize; jj++) {
02-May-2019 19:43:14 +            phi[ii][jj] = atan2((*yCoords)[ii][jj], (*xCoords)[ii][jj]);
02-May-2019 19:43:14 +            (*zTerm)[ii][jj] = 0;
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      int NZ=refim::SynthesisUtils::getenv("NZ",144);
02-May-2019 19:43:14 +      // cout << "NZ = " << NZ << endl;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      //int CUTOFF=refim::SynthesisUtils::getenv("CUTOFF",10);
02-May-2019 19:43:14 +      //cout << "CUTOFF = " << CUTOFF << endl;
02-May-2019 19:43:14 +      //float cutoff;
02-May-2019 19:43:14 +      //if (CUTOFF > 10)
02-May-2019 19:43:14 +      //   cutoff = CUTOFF/100;
02-May-2019 19:43:14 +      //else
02-May-2019 19:43:14 +      //   cutoff = CUTOFF/10.;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      double maxR = 0, maxI = 0;
02-May-2019 19:43:14 +      for (uint tt = 0; tt < NZ; tt++) {
02-May-2019 19:43:14 +         if ((*ampR)[tt] > maxR)
02-May-2019 19:43:14 +            maxR = (*ampR)[tt];
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         if ((*ampI)[tt] > maxI)
02-May-2019 19:43:14 +            maxI = (*ampI)[tt];
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      for (uint tt = 0; tt < NZ; tt++) {
02-May-2019 19:43:14 +            (*ampR)[tt] /= maxR;
02-May-2019 19:43:14 +            (*ampI)[tt] /= maxI;
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      for(uint tt = 0; tt < NZ; tt++) {
02-May-2019 19:43:14 +         //cout << "ampR " << (*ampR)[tt] << " ampI " << (*ampI)[tt] << endl;
02-May-2019 19:43:14 +         // Vector< Vector<double>> R(xSize, Vector<double> (ySize,0));
02-May-2019 19:43:14 +         // cout << "M value : "<< (*m)[tt] << " n value : " << (*n)[tt] << " tt "<< tt << endl;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         Vector<Vector<double>> R;
02-May-2019 19:43:14 +         R.resize(xSize);
02-May-2019 19:43:14 +         for (int ii = 0; ii < xSize; ii++){
02-May-2019 19:43:14 +            R[ii].resize(ySize);
02-May-2019 19:43:14 +            for (int jj =0; jj < ySize; jj++)
02-May-2019 19:43:14 +               R[ii][jj]=0;
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         if (((*n)[tt]-(*m)[tt]) % 2 != 0)
02-May-2019 19:43:14 +            continue;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         int fac = 1;
02-May-2019 19:43:14 +         if ((*n)[tt] % 2 == 0) {
02-May-2019 19:43:14 +            if ((*n)[tt] != 0) {
02-May-2019 19:43:14 +               fac = -1;
02-May-2019 19:43:14 +            }
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         int M;
02-May-2019 19:43:14 +         if ((*m)[tt] < 0) {
02-May-2019 19:43:14 +            M = -(*m)[tt];
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +         else {
02-May-2019 19:43:14 +            M = (*m)[tt];
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         rcoeff(M, (*n)[tt], xCoords, yCoords, xSize, ySize, &R);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         double tmpzern;
02-May-2019 19:43:14 +         int cx, cy;
02-May-2019 19:43:14 +         cx = xSize/2;
02-May-2019 19:43:14 +         cy = ySize/2;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +//#pragma omp parallel for schedule(dynamic)
02-May-2019 19:43:14 +         for (int ii = 0; ii < xSize; ii++) {
02-May-2019 19:43:14 +            for(int jj = 0; jj < ySize; jj++) {
02-May-2019 19:43:14 +               if (R[ii][jj] == 0)
02-May-2019 19:43:14 +                  continue;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +               if ((*m)[tt] > 0){
02-May-2019 19:43:14 +                  tmpzern = fac * R[ii][jj] * cos((*m)[tt]*phi[ii][jj]);
02-May-2019 19:43:14 +               }
02-May-2019 19:43:14 +               else if ((*m)[tt] < 0){
02-May-2019 19:43:14 +                  tmpzern = fac * R[ii][jj] * sin(-(*m)[tt]*phi[ii][jj]);
02-May-2019 19:43:14 +               }
02-May-2019 19:43:14 +               else {
02-May-2019 19:43:14 +                  tmpzern = fac * R[ii][jj];
02-May-2019 19:43:14 +               }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +               (*zTerm)[ii][jj] += Complex((*ampR)[tt]*tmpzern, (*ampI)[tt]*tmpzern);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +               if (sqrt(pow((ii-cx),2)+ pow((jj-cy),2)) > 0.7*cx) { // the 0.7 is an arbitrary scaling fix this
02-May-2019 19:43:14 +                  (*zTerm)[ii][jj] = Complex(0,0);
02-May-2019 19:43:14 +               }
02-May-2019 19:43:14 +            }
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +      return 0;
02-May-2019 19:43:14 +   }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   Int ZernikeCalc::fillAperture(Vector<double> *ampR, Vector<double> *ampI,
02-May-2019 19:43:14 +         Vector<int> *m, Vector<int> *n, Vector< Vector<float> > *xCoords,
02-May-2019 19:43:14 +         Vector< Vector<float> > *yCoords, const int xSize, const int ySize,
02-May-2019 19:43:14 +         ApertureCalcParams *ap)
02-May-2019 19:43:14 +   {
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      IPosition shape(ap->aperture->shape());
02-May-2019 19:43:14 +      Array<Complex> tmpImg(shape);
02-May-2019 19:43:14 +      ap->aperture->get(&tmpImg);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // cout << "ap oversamp " << ap->oversamp << endl;
02-May-2019 19:43:14 +      // cout << "ap dx " << ap->dx << " ap dy " << ap->dy << endl;
02-May-2019 19:43:14 +      // cout << "ap nx " << ap->nx << " ap ny " << ap->ny << endl;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // Timer tim;
02-May-2019 19:43:14 +      // Vector< Vector<Complex> > zTerm(xSize, Vector<Complex>(ySize,0));
02-May-2019 19:43:14 +      Vector< Vector <Complex> > zTerm;
02-May-2019 19:43:14 +      zTerm.resize(xSize);
02-May-2019 19:43:14 +      for (int ii = 0; ii<xSize; ii++){
02-May-2019 19:43:14 +         zTerm[ii].resize(ySize);
02-May-2019 19:43:14 +         for (int jj = 0; jj<ySize; jj++)
02-May-2019 19:43:14 +            zTerm[ii][jj]=0;
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      if ((ampR->size() != m->size()) && (m->size() != n->size())) {
02-May-2019 19:43:14 +         throw length_error("amp, m, and n vectors should be identical length");
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // tim.mark();
02-May-2019 19:43:14 +      zernikeTerm(m, n, ampR, ampI, xCoords, yCoords, xSize, ySize, &zTerm);
02-May-2019 19:43:14 +      // cout << "Time taken to generate zernike surface " << tim.real() << endl;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // tim.mark();
02-May-2019 19:43:14 +//#pragma omp parallel for schedule(dynamic)
02-May-2019 19:43:14 +      for(int ii=0; ii < shape(3); ii++) {
02-May-2019 19:43:14 +         for(int ij=0; ij < shape(2); ij++) {
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +            for(int ik=(ap->ny-ySize)/2; ik < (ap->ny + ySize)/2; ik++) {
02-May-2019 19:43:14 +//#pragma omp simd
02-May-2019 19:43:14 +               for(int il=(ap->nx-xSize)/2; il < (ap->nx + xSize)/2; il++) {
02-May-2019 19:43:14 +                  int zk = ik - (ap->ny-ySize)/2;
02-May-2019 19:43:14 +                  int zl = il - (ap->nx-xSize)/2;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +                  tmpImg[ii][ij][ik][il] =  tmpImg[ii][ij][ik][il]  + zTerm[zk][zl];
02-May-2019 19:43:14 +               }
02-May-2019 19:43:14 +            }
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // cout << "Time taken to fill aperture " << tim.real() << endl;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      ap->aperture->put(tmpImg);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      return 0;
02-May-2019 19:43:14 +   }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   Int ZernikeCalc::computePixelValuesZ(int nx, int ny,
02-May-2019 19:43:14 +         Vector< Vector<float> > *xCoords, Vector< Vector<float> > *yCoords)
02-May-2019 19:43:14 +   {
02-May-2019 19:43:14 +      float dx, dy;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // 2 is the total interval across which the Zernike is defined,
02-May-2019 19:43:14 +      // i.e., from (-1, 1).
02-May-2019 19:43:14 +      dx = 2./nx;
02-May-2019 19:43:14 +      dy = 2./ny;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // This effectively replicates numpy.meshgrid
02-May-2019 19:43:14 +      for(int xx = 0; xx < nx; xx++) {
02-May-2019 19:43:14 +         for(int yy = 0; yy < ny; yy++){
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +            (*xCoords)[xx][yy] = -1 + xx*dx;
02-May-2019 19:43:14 +            (*yCoords)[xx][yy] = -1 + yy*dy;
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      return 0;
02-May-2019 19:43:14 +   }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   Int ZernikeCalc::calculateApertureZ(ApertureCalcParams *ap, Vector< Vector<float> > *xCoords,
02-May-2019 19:43:14 +         Vector< Vector<float> > *yCoords, const int xSize, const int ySize, FILE *fptr, int inStokes)
02-May-2019 19:43:14 +   {
02-May-2019 19:43:14 +      /* Write function to sum individual Zernike surfaces with the
02-May-2019 19:43:14 +       * appropriate amplitudes */
02-May-2019 19:43:14 +      int size = sizeof(VLA_R0.ampR)/sizeof(VLA_R0.ampR[0]);
02-May-2019 19:43:14 +      Vector<double> ampR(size);
02-May-2019 19:43:14 +      Vector<double> ampI(size);
02-May-2019 19:43:14 +      Vector<int> m(size);
02-May-2019 19:43:14 +      Vector<int> n(size);
02-May-2019 19:43:14 +     
02-May-2019 19:43:14 +      fill(ampR.begin(), ampR.end(), 0);
02-May-2019 19:43:14 +      fill(ampI.begin(), ampI.end(), 0);
02-May-2019 19:43:14 +      fill(m.begin(), m.end(), 0);
02-May-2019 19:43:14 +      fill(n.begin(), n.end(), 0);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      if (inStokes == Stokes::RR)
02-May-2019 19:43:14 +      {
02-May-2019 19:43:14 +         // The VLA_?? struct has arrays, convert to vectors since rest of the code
02-May-2019 19:43:14 +         // expects vectors. Each vector is small so this is cheap
02-May-2019 19:43:14 +         int size = sizeof(VLA_R0.ampR)/sizeof(VLA_R0.ampR[0]);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +//#pragma omp simd
02-May-2019 19:43:14 +         for(int ii = 0; ii < size; ii++) {
02-May-2019 19:43:14 +            ampR[ii] = VLA_R0.ampR[ii];
02-May-2019 19:43:14 +            ampI[ii] = VLA_R0.ampI[ii];
02-May-2019 19:43:14 +            m[ii] = VLA_R0.m[ii];
02-May-2019 19:43:14 +            n[ii] = VLA_R0.n[ii];
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      else if (inStokes == Stokes::LL)
02-May-2019 19:43:14 +      {
02-May-2019 19:43:14 +         // The VLA_?? struct has arrays, convert to vectors since rest of the code
02-May-2019 19:43:14 +         // expects vectors. Each vector is small so this is cheap
02-May-2019 19:43:14 +         int size = sizeof(VLA_L0.ampR)/sizeof(VLA_L0.ampR[0]);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +//#pragma omp simd
02-May-2019 19:43:14 +         for(int ii = 0; ii < size; ii++) {
02-May-2019 19:43:14 +            ampR[ii] = VLA_L0.ampR[ii];
02-May-2019 19:43:14 +            ampI[ii] = VLA_L0.ampI[ii];
02-May-2019 19:43:14 +            m[ii] = VLA_L0.m[ii];
02-May-2019 19:43:14 +            n[ii] = VLA_L0.n[ii];
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      if (inStokes == Stokes::XX)
02-May-2019 19:43:14 +      {
02-May-2019 19:43:14 +         // The VLA_?? struct has arrays, convert to vectors since rest of the code
02-May-2019 19:43:14 +         // expects vectors. Each vector is small so this is cheap
02-May-2019 19:43:14 +         int size = sizeof(MeerKAT_X0.ampR)/sizeof(MeerKAT_X0.ampR[0]);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +//#pragma omp simd
02-May-2019 19:43:14 +         for(int ii = 0; ii < size; ii++) {
02-May-2019 19:43:14 +            ampR[ii] = MeerKAT_X0.ampR[ii];
02-May-2019 19:43:14 +            ampI[ii] = MeerKAT_X0.ampI[ii];
02-May-2019 19:43:14 +            m[ii] = MeerKAT_X0.m[ii];
02-May-2019 19:43:14 +            n[ii] = MeerKAT_X0.n[ii];
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      else if (inStokes == Stokes::YY)
02-May-2019 19:43:14 +      {
02-May-2019 19:43:14 +         // The VLA_?? struct has arrays, convert to vectors since rest of the code
02-May-2019 19:43:14 +         // expects vectors. Each vector is small so this is cheap
02-May-2019 19:43:14 +         int size = sizeof(MeerKAT_Y0.ampR)/sizeof(MeerKAT_Y0.ampR[0]);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +//#pragma omp simd
02-May-2019 19:43:14 +         for(int ii = 0; ii < size; ii++) {
02-May-2019 19:43:14 +            ampR[ii] = MeerKAT_Y0.ampR[ii];
02-May-2019 19:43:14 +            ampI[ii] = MeerKAT_Y0.ampI[ii];
02-May-2019 19:43:14 +            m[ii] = MeerKAT_Y0.m[ii];
02-May-2019 19:43:14 +            n[ii] = MeerKAT_Y0.n[ii];
02-May-2019 19:43:14 +         }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      fillAperture(&ampR, &ampI, &m, &n, xCoords, yCoords, xSize, ySize, ap);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      return 0;
02-May-2019 19:43:14 +   }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   /* buildApertureZ contructs the aperture image within ApertureCalcParams,
02-May-2019 19:43:14 +    * i.e., ap->aperture. The meat of the computation sits within
02-May-2019 19:43:14 +    * calculateApertureZ, which reads from a text file that contains the Zernike
02-May-2019 19:43:14 +    * powers as a function of frequency and polarization, and fills the
02-May-2019 19:43:14 +    * appropriate plane in ap->aperture
02-May-2019 19:43:14 +    */
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   Int ZernikeCalc::buildApertureZ(ApertureCalcParams *ap, int inStokes) {
02-May-2019 19:43:14 +      int nx, ny;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      nx = ap->nx;
02-May-2019 19:43:14 +      ny = ap->ny;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      //ap->oversamp *= ap->oversamp;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      // Trim the size of zTerm to be the smallest bounding box around the
02-May-2019 19:43:14 +      // aperture
02-May-2019 19:43:14 +      int xSize = round((nx * ap->dx * ap->oversamp) / VLA_L0.antDia);
02-May-2019 19:43:14 +      int ySize = round((ny * ap->dy * ap->oversamp) / VLA_L0.antDia);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      Vector< Vector<float> > xCoords;
02-May-2019 19:43:14 +      Vector< Vector<float> > yCoords;
02-May-2019 19:43:14 +      xCoords.resize(xSize); yCoords.resize(xSize);
02-May-2019 19:43:14 +      for(int i=0;i<xSize;i++)
02-May-2019 19:43:14 +      {
02-May-2019 19:43:14 +         xCoords[i].resize(ySize);
02-May-2019 19:43:14 +         yCoords[i].resize(ySize);
02-May-2019 19:43:14 +      }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      computePixelValuesZ(xSize, ySize, &xCoords, &yCoords);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      FILE *fptr;
02-May-2019 19:43:14 +      fptr = fopen("~/casa/casa/VLA_Lband_ant12_LL_zcoeffs.csv", "r");
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      calculateApertureZ(ap, &xCoords, &yCoords, xSize, ySize, fptr, inStokes);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      //ap->dx /= ap->oversamp;
02-May-2019 19:43:14 +      //ap->dy /= ap->oversamp;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      return 0;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   }
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +};
02-May-2019 19:43:14 diff --git a/code/synthesis/TransformMachines/ZernikeCalc.h b/code/synthesis/TransformMachines/ZernikeCalc.h
02-May-2019 19:43:14 new file mode 100644
02-May-2019 19:43:14 index 0000000..13fccb5
02-May-2019 19:43:14 --- /dev/null
02-May-2019 19:43:14 +++ b/code/synthesis/TransformMachines/ZernikeCalc.h
02-May-2019 19:43:14 @@ -0,0 +1,99 @@
02-May-2019 19:43:14 +//# ZernikeCalc.h: Definition for ZernikeCalc
02-May-2019 19:43:14 +//# Copyright (C) 1996,1997,1998,1999,2000,2002
02-May-2019 19:43:14 +//# Associated Universities, Inc. Washington DC, USA.
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# This library is free software; you can redistribute it and/or modify it
02-May-2019 19:43:14 +//# under the terms of the GNU Library General Public License as published by
02-May-2019 19:43:14 +//# the Free Software Foundation; either version 2 of the License, or (at your
02-May-2019 19:43:14 +//# option) any later version.
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# This library is distributed in the hope that it will be useful, but WITHOUT
02-May-2019 19:43:14 +//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
02-May-2019 19:43:14 +//# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
02-May-2019 19:43:14 +//# License for more details.
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# You should have received a copy of the GNU Library General Public License
02-May-2019 19:43:14 +//# along with this library; if not, write to the Free Software Foundation,
02-May-2019 19:43:14 +//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# Correspondence concerning AIPS++ should be adressed as follows:
02-May-2019 19:43:14 +//#        Internet email: aips2-request@nrao.edu.
02-May-2019 19:43:14 +//#        Postal address: AIPS++ Project Office
02-May-2019 19:43:14 +//#                        National Radio Astronomy Observatory
02-May-2019 19:43:14 +//#                        520 Edgemont Road
02-May-2019 19:43:14 +//#                        Charlottesville, VA 22903-2475 USA
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//#
02-May-2019 19:43:14 +//# $Id$
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +#ifndef SYNTHESIS_ZERNIKECALC_H
02-May-2019 19:43:14 +#define SYNTHESIS_ZERNIKECALC_H
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +#include <synthesis/TransformMachines/BeamCalc.h>
02-May-2019 19:43:14 +#include <casa/OS/Timer.h>
02-May-2019 19:43:14 +#include <boost/math/special_functions/factorials.hpp>
02-May-2019 19:43:14 +#include <measures/Measures/Stokes.h>
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +using namespace std;
02-May-2019 19:43:14 +using namespace casacore;
02-May-2019 19:43:14 +namespace casa{
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   // XXX TODO: Convert n, m, ampR, ampI to vectors to be dynamically sized
02-May-2019 19:43:14 +   // given user initialization list
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   typedef struct {
02-May-2019 19:43:14 +     int pol; // polarization enurated type is a temporary fix
02-May-2019 19:43:14 +      int spw; // 0...N
02-May-2019 19:43:14 +      int antType; // Index to distinguish antenna types for hetero array
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      float freq; // In Hz
02-May-2019 19:43:14 +      float antDia; // In metres
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      int n[145];
02-May-2019 19:43:14 +      int m[145];
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      double ampR[145];
02-May-2019 19:43:14 +      double ampI[145];
02-May-2019 19:43:14 +   } ZernikeCalcCoeffs;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   extern ZernikeCalcCoeffs VLA_L0;
02-May-2019 19:43:14 +   extern ZernikeCalcCoeffs VLA_R0;
02-May-2019 19:43:14 +   extern ZernikeCalcCoeffs MeerKAT_X0;
02-May-2019 19:43:14 +   extern ZernikeCalcCoeffs MeerKAT_Y0;
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +   class ZernikeCalc : public BeamCalc
02-May-2019 19:43:14 +   {
02-May-2019 19:43:14 +      public:
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         // This is a SINGLETON class
02-May-2019 19:43:14 +         static ZernikeCalc* Instance();
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         ~ZernikeCalc() {}
02-May-2019 19:43:14 +         ZernikeCalc() {}
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         //Int calculateApertureZ(ApertureCalcParams *ap);
02-May-2019 19:43:14 +         Int calculateApertureZ(ApertureCalcParams *ap, Vector< Vector<float> > *xCoords,
02-May-2019 19:43:14 +            Vector< Vector<float> > *yCoords, const int xSize, const int ySize, FILE *fptr, int inStokes);
02-May-2019 19:43:14 +         Int buildApertureZ(ApertureCalcParams *ap, int inStokes);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         Int fillAperture(Vector<double> *ampR, Vector<double> *ampI,
02-May-2019 19:43:14 +                              Vector<int> *m, Vector<int> *n, Vector< Vector<float> > *xCoords,
02-May-2019 19:43:14 +                              Vector< Vector<float> > *yCoords, const int xSize, const int ySize,
02-May-2019 19:43:14 +                              ApertureCalcParams *ap);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +      private:
02-May-2019 19:43:14 +         Int rcoeff(int m, int n, Vector< Vector<float> > *xCoords,
02-May-2019 19:43:14 +                           Vector< Vector<float> > *yCoords, int xSize, int ySize, Vector< Vector<double> > *R);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         Int zernikeTerm(Vector<int> *m, Vector<int> *n, Vector<double> *ampR, Vector<double> *ampI,
02-May-2019 19:43:14 +                                                Vector< Vector<float> > *xCoords, Vector< Vector<float> > *yCoords,
02-May-2019 19:43:14 +                                                int xSize, int ySize, Vector< Vector<Complex> > *zTerm);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         Int computePixelValuesZ(int nx, int ny, Vector< Vector<float> > *xCoords, Vector< Vector<float> > *yCoords);
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +         static ZernikeCalc* instance_p;
02-May-2019 19:43:14 +   };
02-May-2019 19:43:14 +};
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +#endif
02-May-2019 19:43:14 diff --git a/code/synthesis/TransformMachines/ZernikeCalcParams.cc b/code/synthesis/TransformMachines/ZernikeCalcParams.cc
02-May-2019 19:43:14 new file mode 100644
02-May-2019 19:43:14 index 0000000..4933dd5
02-May-2019 19:43:14 --- /dev/null
02-May-2019 19:43:14 +++ b/code/synthesis/TransformMachines/ZernikeCalcParams.cc
02-May-2019 19:43:14 @@ -0,0 +1,55 @@
02-May-2019 19:43:14 +#include <synthesis/TransformMachines/ZernikeCalc.h>
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +using namespace casacore;
02-May-2019 19:43:14 +namespace casa{
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +  ZernikeCalcCoeffs VLA_R0  = {
02-May-2019 19:43:14 +    5, // polarization type
02-May-2019 19:43:14 +    0, // spw
02-May-2019 19:43:14 +    0, // antType
02-May-2019 19:43:14 +    1040.0, // freq
02-May-2019 19:43:14 +    25.0, // ant diam in metres
02-May-2019 19:43:14 +    {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,3,3,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,1,2,3,3,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15},//n
02-May-2019 19:43:14 +    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,3,2,4,1,3,5,2,4,6,1,3,5,7,2,4,6,8,1,3,5,7,9,2,4,6,8,10,1,3,5,7,9,11,2,4,6,8,10,12,1,3,5,7,9,11,13,2,4,6,8,10,12,14,1,3,5,7,9,11,13,15,-1,-2,-3,-1,-4,-2,-5,-3,-1,-6,-4,-2,-7,-5,-3,-1,-8,-6,-4,-2,-9,-7,-5,-3,-1,-10,-8,-6,-4,-2,-11,-9,-7,-5,-3,-1,-12,-10,-8,-6,-4,-2,-13,-11,-9,-7,-5,-3,-1,-14,-12,-10,-8,-6,-4,-2,-15,-13,-11,-9,-7,-5,-3,-1},//m
02-May-2019 19:43:14 +    {9168.719,1.0,-25335.611,1.0,-47955.077,1.0,-61413.507,1.0,-53959.853,1.0,-36873.614,1.0,-16887.094,1.0,-4597.637,1.0,-208588.805,145723.308,-321270.266,520716.098,169285.228,-1974530.802,-308366.049,502843.071,469852.777,135649.172,-1537120.846,-181560.631,-214427.977,353508.804,329898.43,-493778.928,79774.904,-862671.531,-105897.435,1775283.759,-110504.894,185143.881,172380.769,-260916.761,-250497.031,33918.102,-342075.983,-44603.326,727895.632,47494.237,-40637.614,70167.657,65078.085,-100240.968,-95753.074,109113.96,9790.511,-85435.235,-12553.733,195800.819,13386.622,-308912.554,-9535.697,17482.729,16078.039,-25657.325,-24298.065,28093.289,35372.167,1514.318,-9496.152,-1847.577,25886.975,1998.159,-44473.752,-1237.096,-945.05,2146.31,1920.414,-3369.996,-3087.451,3763.04,4800.499,-3102.324,-159088.476,-46735.784,-438174.124,-244739.38,-205151.714,-54166.577,440683.75,-422804.114,-234234.78,203405.593,-164585.171,-43106.999,424810.119,309834.605,-296885.091,-162118.893,111809.634,118952.191,-97165.914,-25009.395,-234309.877,223833.592,162262.924,-155162.796,-82945.921,-83741.36,49224.863,50257.65,-41651.118,-10361.269,-113055.365,-90044.648,85599.056,61498.508,-58609.113,-30090.973,18841.495,-23861.426,14816.18,14213.247,-12166.932,-2805.627,28195.713,-29161.592,-23045.486,21741.552,15314.465,-14502.38,-6865.227,2516.398,2810.296,-3655.923,2656.768,2101.175,-1966.334,-320.999,3585.811,3816.804,-3923.46,-3022.892,2781.004,1882.437,-1748.778,-602.369},//ampR
02-May-2019 19:43:14 +    {56437.115,1.0,-141707.598,1.0,-164299.001,1.0,-130837.891,1.0,-76530.021,1.0,-32365.021,1.0,-9065.972,1.0,-1470.656,1.0,-1468962.401,-28934.798,-2276131.655,2366729.092,-33561.818,111230.214,-2210897.513,2300036.278,2645999.47,-26743.53,85908.067,43731.93,-1568129.429,1633481.585,1880780.286,-1260962.909,-15645.53,47598.355,25615.953,-55108.164,-832272.096,868939.06,1001908.997,-670138.408,-923057.806,-6620.162,18479.426,10854.317,-21652.167,-11505.697,-322081.716,337337.846,389668.244,-259735.84,-358347.849,174288.896,-1875.151,4440.882,3085.791,-5362.733,-3239.44,12474.291,-83306.959,87828.342,101737.843,-67439.289,-93234.068,45100.863,72715.204,-292.676,426.416,472.552,-558.825,-483.145,1726.751,335.253,-11093.287,11982.555,14010.963,-9128.717,-12775.28,6110.479,9766.003,-2455.867,-1019553.433,-369951.205,-2097171.328,-1578915.628,10155.661,-427707.836,1618009.315,-2038841.967,-1531765.632,320338.386,8052.38,-339580.119,1201062.154,1147528.18,-1448797.291,-1084458.541,-11947.644,185661.536,4682.608,-196888.356,-526513.27,638762.708,609172.926,-771476.935,-574116.565,-53998.232,-5111.362,77424.628,1950.348,-82137.263,-174310.856,-202560.073,247873.4,235672.292,-300013.613,-221052.457,692.431,-14809.635,-1470.356,21425.408,545.714,-22731.367,47268.805,-45251.204,-51935.111,64506.858,60957.698,-78320.969,-56835.56,1333.547,106.288,-2083.493,-235.438,3074.678,81.225,-3240.447,2341.895,6218.428,-6174.399,-6839.211,8799.152,8223.344,-10818.293,-7406.411},//ampI
02-May-2019 19:43:14 +  };
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +  ZernikeCalcCoeffs VLA_L0  = {
02-May-2019 19:43:14 +    8, // polarization type
02-May-2019 19:43:14 +    0, // spw
02-May-2019 19:43:14 +    0, // antType
02-May-2019 19:43:14 +    1040.0, // freq
02-May-2019 19:43:14 +    25.0, // ant diam in metres
02-May-2019 19:43:14 +    {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,3,3,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,1,2,3,3,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15},//n
02-May-2019 19:43:14 +    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,3,2,4,1,3,5,2,4,6,1,3,5,7,2,4,6,8,1,3,5,7,9,2,4,6,8,10,1,3,5,7,9,11,2,4,6,8,10,12,1,3,5,7,9,11,13,2,4,6,8,10,12,14,1,3,5,7,9,11,13,15,-1,-2,-3,-1,-4,-2,-5,-3,-1,-6,-4,-2,-7,-5,-3,-1,-8,-6,-4,-2,-9,-7,-5,-3,-1,-10,-8,-6,-4,-2,-11,-9,-7,-5,-3,-1,-12,-10,-8,-6,-4,-2,-13,-11,-9,-7,-5,-3,-1,-14,-12,-10,-8,-6,-4,-2,-15,-13,-11,-9,-7,-5,-3,-1},//m
02-May-2019 19:43:14 +    {-19419.913,1.0,46328.781,1.0,34797.757,1.0,4163.47,1.0,-16036.975,1.0,-21116.387,1.0,-12559.134,1.0,-3985.803,1.0,-18624.193,199242.964,-27571.411,280405.299,231536.926,-2113019.797,-24241.83,269098.624,309593.234,185554.06,-1646682.891,-244865.58,-13952.695,187259.647,215870.138,-392844.502,109175.798,-925826.028,-142792.295,1834354.612,-4817.077,96434.372,111552.148,-206528.742,-214025.518,46494.578,-368184.24,-60097.222,752203.608,84102.054,-44.041,35552.275,41375.121,-78718.585,-81598.428,108314.462,13407.544,-92540.244,-16910.092,202371.782,23873.018,-318632.17,893.479,8372.708,9873.427,-19892.392,-20625.431,27876.137,31389.798,2092.884,-10468.101,-2462.812,26755.786,3632.417,-45876.683,-2343.89,460.411,860.724,1068.157,-2521.585,-2604.398,3734.975,4250.095,-3425.887,-127728.854,-412805.795,-453712.874,-196433.87,228665.74,-478273.878,412014.331,-438320.177,-187816.77,443085.079,183254.063,-381040.055,451719.92,289149.207,-308356.031,-129679.256,-105931.911,258639.215,107921.143,-222055.6,-232446.169,238436.664,150971.955,-161618.556,-66045.872,-98757.426,-45563.12,109010.635,46127.205,-93303.83,-111021.88,-89002.946,91452.842,56934.825,-61316.309,-23700.468,-3239.435,-27848.179,-13242.273,30685.204,13317.387,-26119.676,32041.108,-28647.903,-22647.921,23346.959,14040.603,-15287.707,-5251.902,2410.998,-488.609,-4158.354,-2169.255,4546.18,2128.013,-3774.272,3349.355,4354.307,-3860.908,-2911.556,3037.724,1673.308,-1882.624,-381.384},//ampR
02-May-2019 19:43:14 +    {33407.458,1.0,-83962.438,1.0,-97514.193,1.0,-77801.031,1.0,-45764.598,1.0,-19512.646,1.0,-5512.008,1.0,-964.502,1.0,-852157.587,-5882.282,-1320092.691,1441090.596,-7006.421,-14001.233,-1280914.086,1400205.357,1591241.254,-5801.414,-13659.67,1987.725,-907476.266,994122.101,1129912.742,-720779.68,-3611.964,-10253.34,1122.496,-7101.958,-480847.159,528689.822,600971.625,-382790.171,-596277.412,-1642.883,-5728.432,446.247,-1557.104,217.875,-185441.017,205196.589,233186.452,-148240.898,-230630.671,85371.99,-522.175,-2286.341,118.227,226.159,58.79,8585.256,-47782.06,53405.222,60615.598,-38431.213,-59659.519,21995.585,53190.269,-101.064,-537.374,19.185,247.666,9.984,1168.077,99.122,-6305.635,7335.256,8287.961,-5212.101,-8057.134,2959.085,7110.635,-189.396,-1067048.973,-304748.738,-2155601.72,-1652489.934,-38777.711,-352392.848,1791222.658,-2096116.843,-1603433.0,253159.614,-30986.206,-279900.219,1174976.795,1271395.568,-1490024.625,-1135393.451,26870.284,146674.466,-18134.827,-162392.89,-606090.321,625241.748,675755.429,-793861.799,-601204.216,-39828.274,11388.63,61138.262,-7686.65,-67809.31,-153582.236,-233820.787,242839.033,261903.119,-308983.662,-231604.013,-1774.952,-10853.909,3238.99,16907.676,-2182.659,-18811.648,54713.009,-39816.456,-60219.64,63283.617,67956.637,-80776.37,-59588.28,1060.408,-264.451,-1503.493,492.566,2427.112,-326.611,-2698.774,1711.725,7258.298,-5413.729,-8027.113,8664.237,9226.502,-11196.383,-7761.82},//ampI
02-May-2019 19:43:14 +  };
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +  ZernikeCalcCoeffs MeerKAT_X0  = {
02-May-2019 19:43:14 +    9, // polarization type
02-May-2019 19:43:14 +    0, // spw
02-May-2019 19:43:14 +    0, // antType
02-May-2019 19:43:14 +    1040.0, // freq
02-May-2019 19:43:14 +    13.5, // ant diam in metres
02-May-2019 19:43:14 +    {0,2,4,6,8,10,1,2,3,3,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,10,10,10,10,10,1,2,3,3,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,10,10,10,10,10},//n
02-May-2019 19:43:14 +    {0,0,0,0,0,0,1,2,1,3,2,4,1,3,5,2,4,6,1,3,5,7,2,4,6,8,1,3,5,7,9,2,4,6,8,10,-1,-2,-3,-1,-4,-2,-5,-3,-1,-6,-4,-2,-7,-5,-3,-1,-8,-6,-4,-2,-9,-7,-5,-3,-1,-10,-8,-6,-4,-2},//m
02-May-2019 19:43:14 +    {38.169,-75.784,-100.558,-73.727,-33.132,-7.409,-278.996,-29.301,-382.136,55.454,-35.351,-374.224,-291.113,48.315,-39.873,-26.987,-239.986,198.9,-132.401,26.26,-17.655,-29.698,-12.8,-95.423,76.81,-16.888,-29.119,7.144,-3.865,-6.1,-20.722,-3.633,-18.702,14.489,-2.947,-1.183,-88.09,-157.606,65.583,-118.109,-42.431,-153.118,-66.991,48.185,-88.097,-9.691,-26.954,-89.29,-2.926,-30.122,21.237,-39.089,-7.046,-5.334,-10.904,-30.35,-0.277,-0.526,-6.742,4.579,-8.146,-0.659,-1.388,-1.57,-2.314,-4.513},//ampR
02-May-2019 19:43:14 +    {121.188,-280.662,-271.256,-158.553,-52.989,-7.139,-199.483,78.384,-257.766,221.039,80.212,-30.728,-176.966,158.091,132.004,52.043,-13.366,70.616,-67.163,65.756,57.561,-36.735,21.577,-1.78,24.03,-50.967,-10.245,12.97,12.16,-6.983,-2.889,5.203,0.477,3.399,-8.771,-12.423,-60.001,82.234,2.346,-80.536,-9.319,84.902,-8.946,0.488,-58.114,-19.138,-5.958,54.804,-4.147,-2.844,-0.81,-25.207,21.319,-7.231,-2.205,22.068,-0.938,-1.133,-0.237,-0.543,-5.196,-5.678,4.154,-1.38,-0.272,4.43},//ampI
02-May-2019 19:43:14 +  };
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +  ZernikeCalcCoeffs MeerKAT_Y0  = {
02-May-2019 19:43:14 +    12, // polarization type
02-May-2019 19:43:14 +    0, // spw
02-May-2019 19:43:14 +    0, // antType
02-May-2019 19:43:14 +    1040.0, // freq
02-May-2019 19:43:14 +    13.5, // ant diam in metres
02-May-2019 19:43:14 +    {0,2,4,6,8,10,1,2,3,3,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,10,10,10,10,10,1,2,3,3,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,9,10,10,10,10,10},//n
02-May-2019 19:43:14 +    {0,0,0,0,0,0,1,2,1,3,2,4,1,3,5,2,4,6,1,3,5,7,2,4,6,8,1,3,5,7,9,2,4,6,8,10,-1,-2,-3,-1,-4,-2,-5,-3,-1,-6,-4,-2,-7,-5,-3,-1,-8,-6,-4,-2,-9,-7,-5,-3,-1,-10,-8,-6,-4,-2},//m
02-May-2019 19:43:14 +    {64.57,-137.479,-161.763,-110.863,-46.69,-9.555,-200.739,183.585,-276.985,32.241,182.964,-349.462,-211.98,30.761,-14.212,113.431,-227.098,132.064,-96.456,18.22,-4.053,-24.854,43.852,-91.631,48.745,-42.117,-20.925,5.403,-0.053,-4.807,-12.137,8.973,-18.096,8.589,-8.318,-0.089,-12.192,-129.501,-0.522,-16.65,-38.633,-129.611,-33.091,-2.185,-12.474,13.501,-24.297,-79.976,-12.138,-13.571,-2.445,-5.436,-11.891,3.964,-9.44,-30.306,2.18,-2.832,-2.599,-1.139,-1.127,-5.003,-2.5,0.369,-1.814,-5.774},//ampR
02-May-2019 19:43:14 +    {145.334,-336.6,-325.886,-190.566,-63.692,-8.48,-232.652,-353.512,-303.731,247.604,-360.915,-79.526,-214.619,175.604,125.28,-231.22,-42.139,-114.952,-86.01,71.68,53.826,-11.241,-92.68,-11.571,-45.341,-54.971,-15.259,13.368,10.983,-0.942,4.329,-19.038,-0.776,-9.05,-9.421,-7.917,-26.885,155.86,19.249,-36.008,-17.841,157.794,-26.212,14.326,-26.811,17.038,-12.582,99.112,13.841,-10.549,6.302,-11.862,39.099,5.706,-5.687,38.4,-0.31,2.84,-1.834,1.378,-2.541,-3.568,7.476,0.87,-1.196,7.252},//ampI
02-May-2019 19:43:14 +  };
02-May-2019 19:43:14 +
02-May-2019 19:43:14 +};
02-May-2019 19:43:14 diff --git a/code/synthesis/TransformMachines2/AWProjectFT.cc b/code/synthesis/TransformMachines2/AWProjectFT.cc
02-May-2019 19:43:14 index 4f2228c..ef9c575 100644
02-May-2019 19:43:14 --- a/code/synthesis/TransformMachines2/AWProjectFT.cc
02-May-2019 19:43:14 +++ b/code/synthesis/TransformMachines2/AWProjectFT.cc
02-May-2019 19:43:14 @@ -118,7 +118,7 @@ namespace casa { //# NAMESPACE CASA - BEGIN
02-May-2019 19:43:14      
02-May-2019 19:43:14      // ROMSObservationColumns msoc(ms.observation());
02-May-2019 19:43:14      // String ObsName=msoc.telescopeName()(0);
02-May-2019 19:43:14 -    if ((telescopeName == "EVLA") || (telescopeName == "VLA"))
02-May-2019 19:43:14 +    if ((telescopeName == "EVLA") || (telescopeName == "VLA") || (telescopeName == "MeerKAT"))
02-May-2019 19:43:14        return new EVLAAperture();
02-May-2019 19:43:14      else
02-May-2019 19:43:14        {
02-May-2019 19:43:14 diff --git a/code/synthesis/TransformMachines2/EVLAAperture.cc b/code/synthesis/TransformMachines2/EVLAAperture.cc
02-May-2019 19:43:14 index e35d8a6..08e51b4 100644
02-May-2019 19:43:14 --- a/code/synthesis/TransformMachines2/EVLAAperture.cc
02-May-2019 19:43:14 +++ b/code/synthesis/TransformMachines2/EVLAAperture.cc
02-May-2019 19:43:14 @@ -90,6 +90,11 @@ namespace casa{
02-May-2019 19:43:14           else if ((refFreq >=26.5E9) && (refFreq <=40.8E9))  return BeamCalc_EVLA_A;
02-May-2019 19:43:14           else if ((refFreq >=40.0E9) && (refFreq <=50.0E9))  return BeamCalc_EVLA_Q;
02-May-2019 19:43:14         }
02-May-2019 19:43:14 +      else
02-May-2019 19:43:14 +        if (telescopeName == "MeerKAT")
02-May-2019 19:43:14 +          {
02-May-2019 19:43:14 +            if      ((refFreq >= 0.9E9) && (refFreq <= 2.1E9))  return BeamCalc_EVLA_L;
02-May-2019 19:43:14 +          }
02-May-2019 19:43:14      ostringstream mesg;
02-May-2019 19:43:14      log_l << telescopeName << "/" << refFreq << "(Hz) combination not recognized." << LogIO::EXCEPTION;
02-May-2019 19:43:14      return -1;
02-May-2019 19:43:14 @@ -108,7 +113,7 @@ namespace casa{
02-May-2019 19:43:14        .observation().telescopeName().getColumn();
02-May-2019 19:43:14      for(uInt nt=0;nt<telescopeNames.nelements();nt++)
02-May-2019 19:43:14        {
02-May-2019 19:43:14 -        if ((telescopeNames(nt) != "VLA") && (telescopeNames(nt) != "EVLA"))
02-May-2019 19:43:14 +        if ((telescopeNames(nt) != "VLA") && (telescopeNames(nt) != "EVLA") && (telescopeNames(nt) != "MeerKAT"))
02-May-2019 19:43:14           {
02-May-2019 19:43:14             String mesg="We can handle only (E)VLA antennas for now.\n";
02-May-2019 19:43:14             mesg += "Erroneous telescope name = " + telescopeNames(nt) + ".";
02-May-2019 19:43:14 diff --git a/code/synthesis/TransformMachines2/VLACalcIlluminationConvFunc.cc b/code/synthesis/TransformMachines2/VLACalcIlluminationConvFunc.cc
02-May-2019 19:43:14 index 23dfe4c..e221b08 100644
02-May-2019 19:43:14 --- a/code/synthesis/TransformMachines2/VLACalcIlluminationConvFunc.cc
02-May-2019 19:43:14 +++ b/code/synthesis/TransformMachines2/VLACalcIlluminationConvFunc.cc
02-May-2019 19:43:14 @@ -261,20 +261,15 @@ namespace casa{
02-May-2019 19:43:14    //--------------------------------------------------------------------------
02-May-2019 19:43:14    //
02-May-2019 19:43:14    void VLACalcIlluminationConvFunc::regridApertureEngine(ApertureCalcParams& ap,
02-May-2019 19:43:14 -                                                         const Int& /*inStokes*/)
02-May-2019 19:43:14 +                                                         const Int& inStokes)
02-May-2019 19:43:14    {
02-May-2019 19:43:14      IPosition apertureShape(ap.aperture->shape());
02-May-2019 19:43:14      apertureShape(0) = ap.nx;  apertureShape(1) = ap.ny;
02-May-2019 19:43:14      ap.aperture->resize(apertureShape);
02-May-2019 19:43:14      ap.aperture->set(0.0);
02-May-2019 19:43:14 -    //BeamCalc::Instance()->calculateAperture(&ap,inStokes);
02-May-2019 19:43:14 -    //cerr << ap.aperture->shape() << " " << inStokes << endl;
02-May-2019 19:43:14
02-May-2019 19:43:14 -    // If full-pol. imaging, compute all 4 pols., else only the one given by inStokes.
02-May-2019 19:43:14 -    BeamCalc::Instance()->calculateAperture(&ap);// The call in the absence of instokes allows the computation of all
02-May-2019 19:43:14 -    //BeamCalc::Instance()->calculateAperture(&ap,inStokes);// The call in the absence of instokes allows the computation of all
02-May-2019 19:43:14 -                                                            // the four jones parameters at one time.
02-May-2019 19:43:14 -}
02-May-2019 19:43:14 +    ZernikeCalc::Instance()->buildApertureZ(&ap, inStokes);
02-May-2019 19:43:14 +  }
02-May-2019 19:43:14    //
02-May-2019 19:43:14    //--------------------------------------------------------------------------
02-May-2019 19:43:14    //
02-May-2019 19:43:14 @@ -399,21 +394,22 @@ namespace casa{
02-May-2019 19:43:14      uvCoords.replaceCoordinate(spectralCoord,index);
02-May-2019 19:43:14      //logIO << "The Stokes coordinate is", poln(0)<< LogIO::POST;
02-May-2019 19:43:14      ap.aperture->setCoordinateInfo(uvCoords);
02-May-2019 19:43:14 -     if (doSquint==true)
02-May-2019 19:43:14 -    {
02-May-2019 19:43:14 +    //  if (doSquint==true)
02-May-2019 19:43:14 +    //{
02-May-2019 19:43:14      //  String name("aperture.im");
02-May-2019 19:43:14      //  storeImg(name,*(ap.aperture));
02-May-2019 19:43:14 -    }
02-May-2019 19:43:14 +    //}
02-May-2019 19:43:14      
02-May-2019 19:43:14      //
02-May-2019 19:43:14      // Now FT the re-gridded Fourier plane to get the primary beam.
02-May-2019 19:43:14      //
02-May-2019 19:43:14 -    ftAperture(*(ap.aperture),muellerTerm);
02-May-2019 19:43:14 -     if (doSquint==true)
02-May-2019 19:43:14 -    {
02-May-2019 19:43:14 +    ftAperture(*(ap.aperture),muellerTerm); // Do not comment this line out kills mueller production
02-May-2019 19:43:14 +   
02-May-2019 19:43:14 +    //  if (doSquint==true)
02-May-2019 19:43:14 +    //{
02-May-2019 19:43:14      //  String name("ftaperture.im");
02-May-2019 19:43:14      //  storeImg(name,*(ap.aperture));
02-May-2019 19:43:14 -    }
02-May-2019 19:43:14 +    //}
02-May-2019 19:43:14      
02-May-2019 19:43:14    }
02-May-2019 19:43:14    void VLACalcIlluminationConvFunc::regridAperture(CoordinateSystem& skyCS,
02-May-2019 19:43:14 @@ -705,10 +701,10 @@ namespace casa{
02-May-2019 19:43:14      //
02-May-2019 19:43:14      // Make SkyJones
02-May-2019 19:43:14      //
02-May-2019 19:43:14 -    // {
02-May-2019 19:43:14 -       //String name("uvgrid.im");
02-May-2019 19:43:14 -       //storeImg(name,uvgrid);
02-May-2019 19:43:14 -    // }
02-May-2019 19:43:14 +    //{
02-May-2019 19:43:14 +    //   String name("uvgrid.im");
02-May-2019 19:43:14 +    //   storeImg(name,uvgrid);
02-May-2019 19:43:14 +    //}
02-May-2019 19:43:14      LatticeFFT::cfft2d(uvgrid);
02-May-2019 19:43:14 //    {
02-May-2019 19:43:14 //      Int index = uvgrid.coordinates().findCoordinate(Coordinate::STOKES);
02-May-2019 19:43:14 @@ -719,10 +715,10 @@ namespace casa{
02-May-2019 19:43:14        //tt << name << "_"<< inStokes;
02-May-2019 19:43:14        //storeImg(String(tt),uvgrid);
02-May-2019 19:43:14 //    }
02-May-2019 19:43:14 -    // {
02-May-2019 19:43:14 -       //String name("ftuvgrid.im");
02-May-2019 19:43:14 -       //storeImg(name,uvgrid);
02-May-2019 19:43:14 -    // }
02-May-2019 19:43:14 +    //{
02-May-2019 19:43:14 +    //   String name("ftuvgrid.im");
02-May-2019 19:43:14 +    //   storeImg(name,uvgrid);
02-May-2019 19:43:14 +    //}
02-May-2019 19:43:14      
02-May-2019 19:43:14      // Now make SkyMuller
02-May-2019 19:43:14      //
02-May-2019 19:43:14 @@ -798,7 +794,7 @@ namespace casa{
02-May-2019 19:43:14 //      }
02-May-2019 19:43:14        //{
02-May-2019 19:43:14           //skyJones.put(buf);
02-May-2019 19:43:14 -        // ostringstream tt;
02-May-2019 19:43:14 +         //ostringstream tt;
02-May-2019 19:43:14           //String name("skyjones.im");
02-May-2019 19:43:14           //tt << name << "_" << inStokes;   
02-May-2019 19:43:14           //storeImg(tt.string(),skyJones);
02-May-2019 19:43:14 @@ -853,12 +849,12 @@ namespace casa{
02-May-2019 19:43:14      IPosition t(4,0,0,0,0),n0(4,0,0,0,0),n1(4,0,0,0,0);
02-May-2019 19:43:14      
02-May-2019 19:43:14      skyJones.put(buf);
02-May-2019 19:43:14 -//    ostringstream tt;
02-May-2019 19:43:14 -//    String name("skyjones.im");
02-May-2019 19:43:14 -//    tt << name << "_"<< inStokes;
02-May-2019 19:43:14 -//    storeImg(String(tt),skyJones);
02-May-2019 19:43:14 -//    skyJones.put(buf);
02-May-2019 19:43:14 -//  cout<<"Finished writing the initial sky jones \n";
02-May-2019 19:43:14 +//     ostringstream tt;
02-May-2019 19:43:14 +//     String name("skyjones.im");
02-May-2019 19:43:14 +//     tt << name << "_"<< inStokes;
02-May-2019 19:43:14 +//     storeImg(String(tt),skyJones);
02-May-2019 19:43:14 +// //    skyJones.put(buf);
02-May-2019 19:43:14 +//   cout<<"Finished writing the initial sky jones \n";
02-May-2019 19:43:14 //    exit(0);
02-May-2019 19:43:14 //    skyMuller(buf,shape, inStokes);
02-May-2019 19:43:14
02-May-2019 19:43:14 @@ -888,16 +884,16 @@ namespace casa{
02-May-2019 19:43:14                            tmp(t)=conj(tmp(t)/sqrt(Normalizesq));
02-May-2019 19:43:14         
02-May-2019 19:43:14 //  cout<<"The Jones Matrix has been normalized using:"<< sqrt(Normalizesq)<<"\n";
02-May-2019 19:43:14 -    skyJones.put(tmp);
02-May-2019 19:43:14 +   //  skyJones.put(tmp);
02-May-2019 19:43:14     // ostringstream tt1;
02-May-2019 19:43:14     // String name1("skyjones_normalized_conj.im");
02-May-2019 19:43:14     // tt1 << name1 << "_"<< inStokes;
02-May-2019 19:43:14     // storeImg(String(tt1),skyJones);
02-May-2019 19:43:14 -   // // exit(0);
02-May-2019 19:43:14 -   // // skyJones.put(tmp);
02-May-2019 19:43:14 +   // exit(0);
02-May-2019 19:43:14 +   // skyJones.put(tmp);
02-May-2019 19:43:14     // cout<<"Finished writing the normalized conjugate sky jones \n";
02-May-2019 19:43:14                 
02-May-2019 19:43:14 -//    cout<<"Begining the compute of Mueller Matrix term images \n";
02-May-2019 19:43:14 +   // cout<<"Begining the compute of Mueller Matrix term images \n";
02-May-2019 19:43:14
02-May-2019 19:43:14      IPosition sliceStart0(4,0,0,0,0),sliceStart1(4,0,0,0,1),sliceLength0(4,shape(0),shape(1),1,1),sliceLength1(4,shape(0),shape(1),1,1);
02-May-2019 19:43:14      IPosition sliceStart2(4,0,0,0,2),sliceStart3(4,0,0,0,3),sliceLength2(4,shape(0),shape(1),1,1),sliceLength3(4,shape(0),shape(1),1,1);
02-May-2019 19:43:14 diff --git a/code/synthesis/TransformMachines2/VLACalcIlluminationConvFunc.h b/code/synthesis/TransformMachines2/VLACalcIlluminationConvFunc.h
02-May-2019 19:43:14 index 3504e40..db23208 100644
02-May-2019 19:43:14 --- a/code/synthesis/TransformMachines2/VLACalcIlluminationConvFunc.h
02-May-2019 19:43:14 +++ b/code/synthesis/TransformMachines2/VLACalcIlluminationConvFunc.h
02-May-2019 19:43:14 @@ -31,7 +31,8 @@
02-May-2019 19:43:14
02-May-2019 19:43:14 #include <synthesis/TransformMachines2/IlluminationConvFunc.h>
02-May-2019 19:43:14 //#include <synthesis/MeasurementComponents/BeamCalcConstants.h>
02-May-2019 19:43:14 -#include <synthesis/TransformMachines/BeamCalc.h>
02-May-2019 19:43:14 +//#include <synthesis/TransformMachines/BeamCalc.h>
02-May-2019 19:43:14 +#include <synthesis/TransformMachines/ZernikeCalc.h>
02-May-2019 19:43:14 //#include <synthesis/MeasurementComponents/BeamCalcAntenna.h>
02-May-2019 19:43:14 #include <synthesis/MeasurementComponents/CExp.new3.h>
02-May-2019 19:43:14 #include <synthesis/MeasurementComponents/ExpCache.h>
02-May-2019 19:43:14
02-May-2019 19:43:14 Comparison returned: 1
02-May-2019 19:43:14 Checkout: git checkout ARD-20
02-May-2019 19:43:14 Already on 'ARD-20'
02-May-2019 19:43:14
02-May-2019 19:43:14 [git, tag, -a, 5.5.0-132-test-ARD-20-2, -m 'Automatic tag']
02-May-2019 19:43:14
02-May-2019 19:43:14 Done tagging 5.5.0-132-test-ARD-20-2
02-May-2019 19:43:14 Pushing 5.5.0-132-test-ARD-20-2 to origin
02-May-2019 19:43:14 To ssh://git@open-bitbucket.nrao.edu:7999/casa/casa.git
02-May-2019 19:43:14 * [new tag]         5.5.0-132-test-ARD-20-2 -> 5.5.0-132-test-ARD-20-2
02-May-2019 19:43:14
02-May-2019 19:43:14 Pushed 5.5.0-132-test-ARD-20-2 to origin
02-May-2019 19:43:14
02-May-2019 19:43:14 BUILD SUCCESSFUL
02-May-2019 19:43:14
02-May-2019 19:43:14 Total time: 5.989 secs
02-May-2019 19:43:15 Finished task 'Script' with result: Success
02-May-2019 19:43:15 Running post build plugin 'Docker Container Cleanup'
02-May-2019 19:43:15 Running post build plugin 'NCover Results Collector'
02-May-2019 19:43:15 Running post build plugin 'Clover Results Collector'
02-May-2019 19:43:15 Running post build plugin 'npm Cache Cleanup'
02-May-2019 19:43:15 Running post build plugin 'Artifact Copier'
02-May-2019 19:43:15 Finalising the build...
02-May-2019 19:43:15 Stopping timer.
02-May-2019 19:43:15 Build ARD-BPT16-TBFP-2 completed.
02-May-2019 19:43:15 Running on server: post build plugin 'NCover Results Collector'
02-May-2019 19:43:15 Running on server: post build plugin 'Build Hanging Detection Configuration'
02-May-2019 19:43:15 Running on server: post build plugin 'Clover Delta Calculator'
02-May-2019 19:43:15 Running on server: post build plugin 'Maven Dependencies Postprocessor'
02-May-2019 19:43:15 All post build plugins have finished
02-May-2019 19:43:15 Generating build results summary...
02-May-2019 19:43:15 Saving build results to disk...
02-May-2019 19:43:15 Logging substituted variables...
02-May-2019 19:43:15 Indexing build results...
02-May-2019 19:43:15 Finished building ARD-BPT16-TBFP-2.