Diff of the two buildlogs: -- --- b1/build.log 2023-05-22 10:50:46.009238052 +0000 +++ b2/build.log 2023-05-22 10:59:07.883326177 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun May 21 22:29:09 -12 2023 -I: pbuilder-time-stamp: 1684751349 +I: Current time: Tue May 23 00:51:05 +14 2023 +I: pbuilder-time-stamp: 1684752665 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -16,7 +16,7 @@ I: copying [./octave-bim_1.1.6.orig.tar.gz] I: copying [./octave-bim_1.1.6-1.debian.tar.xz] I: Extracting source -gpgv: Signature made Wed Nov 16 05:01:39 2022 -12 +gpgv: Signature made Thu Nov 17 07:01:39 2022 +14 gpgv: using RSA key 3F464391498FE874BDB5D98F2124AA1983785C90 gpgv: issuer "rafael@debian.org" gpgv: Can't check signature: No public key @@ -30,135 +30,167 @@ dpkg-source: info: applying xtest-in-bim1c_norm.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/32080/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/6275/tmp/hooks/D01_modify_environment starting +debug: Running on ff64a. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 May 23 00:51 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/6275/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/6275/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='bookworm' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=6 ' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='f1578ecad22b4ac9975c4ecd4be8bb3c' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='32080' - PS1='# ' - PS2='> ' + INVOCATION_ID=0a13c53f85c24639900364dc39aab04b + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=6275 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.044u7TzK/pbuilderrc_4dFH --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.044u7TzK/b1 --logfile b1/build.log octave-bim_1.1.6-1.dsc' - SUDO_GID='116' - SUDO_UID='112' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.044u7TzK/pbuilderrc_3ZJ6 --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.044u7TzK/b2 --logfile b2/build.log --extrapackages usrmerge octave-bim_1.1.6-1.dsc' + SUDO_GID=114 + SUDO_UID=109 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux cbxi4b 5.10.0-23-armmp #1 SMP Debian 5.10.179-1 (2023-05-12) armv7l GNU/Linux + Linux i-capture-the-hostname 5.10.0-23-arm64 #1 SMP Debian 5.10.179-1 (2023-05-12) aarch64 GNU/Linux I: ls -l /bin total 5072 - -rwxr-xr-x 1 root root 838488 Apr 23 09:24 bash - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bunzip2 - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzcat - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Sep 18 2022 bzdiff - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Sep 18 2022 bzgrep - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzip2 - -rwxr-xr-x 1 root root 67112 Sep 18 2022 bzip2recover - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Sep 18 2022 bzmore - -rwxr-xr-x 1 root root 67632 Sep 20 2022 cat - -rwxr-xr-x 1 root root 67676 Sep 20 2022 chgrp - -rwxr-xr-x 1 root root 67644 Sep 20 2022 chmod - -rwxr-xr-x 1 root root 67684 Sep 20 2022 chown - -rwxr-xr-x 1 root root 133532 Sep 20 2022 cp - -rwxr-xr-x 1 root root 132868 Jan 5 01:20 dash - -rwxr-xr-x 1 root root 133220 Sep 20 2022 date - -rwxr-xr-x 1 root root 67732 Sep 20 2022 dd - -rwxr-xr-x 1 root root 68104 Sep 20 2022 df - -rwxr-xr-x 1 root root 133632 Sep 20 2022 dir - -rwxr-xr-x 1 root root 59128 Mar 22 21:02 dmesg - lrwxrwxrwx 1 root root 8 Dec 19 01:33 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Dec 19 01:33 domainname -> hostname - -rwxr-xr-x 1 root root 67560 Sep 20 2022 echo - -rwxr-xr-x 1 root root 41 Jan 24 02:43 egrep - -rwxr-xr-x 1 root root 67548 Sep 20 2022 false - -rwxr-xr-x 1 root root 41 Jan 24 02:43 fgrep - -rwxr-xr-x 1 root root 55748 Mar 22 21:02 findmnt - -rwsr-xr-x 1 root root 26208 Mar 22 20:15 fusermount - -rwxr-xr-x 1 root root 128608 Jan 24 02:43 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 64220 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 67032 Dec 19 01:33 hostname - -rwxr-xr-x 1 root root 67720 Sep 20 2022 ln - -rwxr-xr-x 1 root root 35132 Mar 22 21:51 login - -rwxr-xr-x 1 root root 133632 Sep 20 2022 ls - -rwxr-xr-x 1 root root 136808 Mar 22 21:02 lsblk - -rwxr-xr-x 1 root root 67800 Sep 20 2022 mkdir - -rwxr-xr-x 1 root root 67764 Sep 20 2022 mknod - -rwxr-xr-x 1 root root 67596 Sep 20 2022 mktemp - -rwxr-xr-x 1 root root 38504 Mar 22 21:02 more - -rwsr-xr-x 1 root root 38496 Mar 22 21:02 mount - -rwxr-xr-x 1 root root 9824 Mar 22 21:02 mountpoint - -rwxr-xr-x 1 root root 133532 Sep 20 2022 mv - lrwxrwxrwx 1 root root 8 Dec 19 01:33 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 2 18:25 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 67608 Sep 20 2022 pwd - lrwxrwxrwx 1 root root 4 Apr 23 09:24 rbash -> bash - -rwxr-xr-x 1 root root 67600 Sep 20 2022 readlink - -rwxr-xr-x 1 root root 67672 Sep 20 2022 rm - -rwxr-xr-x 1 root root 67600 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 67400 Nov 2 2022 run-parts - -rwxr-xr-x 1 root root 133372 Jan 5 07:55 sed - lrwxrwxrwx 1 root root 4 Jan 5 01:20 sh -> dash - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sleep - -rwxr-xr-x 1 root root 67644 Sep 20 2022 stty - -rwsr-xr-x 1 root root 50800 Mar 22 21:02 su - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sync - -rwxr-xr-x 1 root root 336764 Apr 6 02:25 tar - -rwxr-xr-x 1 root root 67144 Nov 2 2022 tempfile - -rwxr-xr-x 1 root root 133224 Sep 20 2022 touch - -rwxr-xr-x 1 root root 67548 Sep 20 2022 true - -rwxr-xr-x 1 root root 9768 Mar 22 20:15 ulockmgr_server - -rwsr-xr-x 1 root root 22108 Mar 22 21:02 umount - -rwxr-xr-x 1 root root 67572 Sep 20 2022 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 133632 Sep 20 2022 vdir - -rwxr-xr-x 1 root root 42608 Mar 22 21:02 wdctl - lrwxrwxrwx 1 root root 8 Dec 19 01:33 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 6460 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8103 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/32080/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 838488 Apr 24 11:24 bash + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bunzip2 + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzcat + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzip2 + -rwxr-xr-x 1 root root 67112 Sep 19 2022 bzip2recover + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore + -rwxr-xr-x 1 root root 67632 Sep 21 2022 cat + -rwxr-xr-x 1 root root 67676 Sep 21 2022 chgrp + -rwxr-xr-x 1 root root 67644 Sep 21 2022 chmod + -rwxr-xr-x 1 root root 67684 Sep 21 2022 chown + -rwxr-xr-x 1 root root 133532 Sep 21 2022 cp + -rwxr-xr-x 1 root root 132868 Jan 6 03:20 dash + -rwxr-xr-x 1 root root 133220 Sep 21 2022 date + -rwxr-xr-x 1 root root 67732 Sep 21 2022 dd + -rwxr-xr-x 1 root root 68104 Sep 21 2022 df + -rwxr-xr-x 1 root root 133632 Sep 21 2022 dir + -rwxr-xr-x 1 root root 59128 Mar 23 23:02 dmesg + lrwxrwxrwx 1 root root 8 Dec 20 03:33 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Dec 20 03:33 domainname -> hostname + -rwxr-xr-x 1 root root 67560 Sep 21 2022 echo + -rwxr-xr-x 1 root root 41 Jan 25 04:43 egrep + -rwxr-xr-x 1 root root 67548 Sep 21 2022 false + -rwxr-xr-x 1 root root 41 Jan 25 04:43 fgrep + -rwxr-xr-x 1 root root 55748 Mar 23 23:02 findmnt + -rwsr-xr-x 1 root root 26208 Mar 23 22:15 fusermount + -rwxr-xr-x 1 root root 128608 Jan 25 04:43 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 64220 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 67032 Dec 20 03:33 hostname + -rwxr-xr-x 1 root root 67720 Sep 21 2022 ln + -rwxr-xr-x 1 root root 35132 Mar 23 23:51 login + -rwxr-xr-x 1 root root 133632 Sep 21 2022 ls + -rwxr-xr-x 1 root root 136808 Mar 23 23:02 lsblk + -rwxr-xr-x 1 root root 67800 Sep 21 2022 mkdir + -rwxr-xr-x 1 root root 67764 Sep 21 2022 mknod + -rwxr-xr-x 1 root root 67596 Sep 21 2022 mktemp + -rwxr-xr-x 1 root root 38504 Mar 23 23:02 more + -rwsr-xr-x 1 root root 38496 Mar 23 23:02 mount + -rwxr-xr-x 1 root root 9824 Mar 23 23:02 mountpoint + -rwxr-xr-x 1 root root 133532 Sep 21 2022 mv + lrwxrwxrwx 1 root root 8 Dec 20 03:33 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 3 20:25 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 67608 Sep 21 2022 pwd + lrwxrwxrwx 1 root root 4 Apr 24 11:24 rbash -> bash + -rwxr-xr-x 1 root root 67600 Sep 21 2022 readlink + -rwxr-xr-x 1 root root 67672 Sep 21 2022 rm + -rwxr-xr-x 1 root root 67600 Sep 21 2022 rmdir + -rwxr-xr-x 1 root root 67400 Nov 3 2022 run-parts + -rwxr-xr-x 1 root root 133372 Jan 6 09:55 sed + lrwxrwxrwx 1 root root 9 May 23 00:51 sh -> /bin/bash + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sleep + -rwxr-xr-x 1 root root 67644 Sep 21 2022 stty + -rwsr-xr-x 1 root root 50800 Mar 23 23:02 su + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sync + -rwxr-xr-x 1 root root 336764 Apr 7 04:25 tar + -rwxr-xr-x 1 root root 67144 Nov 3 2022 tempfile + -rwxr-xr-x 1 root root 133224 Sep 21 2022 touch + -rwxr-xr-x 1 root root 67548 Sep 21 2022 true + -rwxr-xr-x 1 root root 9768 Mar 23 22:15 ulockmgr_server + -rwsr-xr-x 1 root root 22108 Mar 23 23:02 umount + -rwxr-xr-x 1 root root 67572 Sep 21 2022 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 133632 Sep 21 2022 vdir + -rwxr-xr-x 1 root root 42608 Mar 23 23:02 wdctl + lrwxrwxrwx 1 root root 8 Dec 20 03:33 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/6275/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -754,7 +786,7 @@ Get: 552 http://deb.debian.org/debian bookworm/main armhf gmsh armhf 4.8.4+ds2-3 [33.0 kB] Get: 553 http://deb.debian.org/debian bookworm/main armhf octave-splines all 1.3.4-3 [24.3 kB] Get: 554 http://deb.debian.org/debian bookworm/main armhf octave-msh armhf 1.0.10-12 [29.7 kB] -Fetched 215 MB in 34s (6312 kB/s) +Fetched 215 MB in 19s (11.6 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package netbase. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19329 files and directories currently installed.) @@ -3026,8 +3058,19 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +usrmerge is already the newest version (35). +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/octave-bim-1.1.6/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../octave-bim_1.1.6-1_source.changes +I: user script /srv/workspace/pbuilder/6275/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +removed '/etc/unsupported-skip-usrmerge-conversion' +The system has been successfully converted. +I: user script /srv/workspace/pbuilder/6275/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/octave-bim-1.1.6/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../octave-bim_1.1.6-1_source.changes dpkg-buildpackage: info: source package octave-bim dpkg-buildpackage: info: source version 1.1.6-1 dpkg-buildpackage: info: source distribution unstable @@ -3059,20 +3102,269 @@ dh_octave_check -O--buildsystem=octave Checking package... Checking m files ... -[inst/bim3a_reaction.m] ->>>>> /build/octave-bim-1.1.6/inst/bim3a_reaction.m -***** shared mesh,delta,zeta,nnodes,nelem +[inst/bim3a_osc_laplacian.m] +>>>>> /build/octave-bim-1.1.6/inst/bim3a_osc_laplacian.m +***** shared msh, epsilon, M, nnodes, nelem, x, y, z +***** test + msh = bim3c_mesh_properties (msh3m_structured_mesh (0:5, 0:5, 0:5, 1, 1:6)); + x = msh.p (1, :).'; + y = msh.p (2, :).'; + z = msh.p (3, :).'; + u = ones (size (x)); + M = bim3a_osc_laplacian (msh, 1); + assert (M * u, zeros (size (u)), eps * 100) +***** test + u = x; + bnd = bim3c_unknowns_on_faces (msh, [1, 2]); + int = setdiff (1:columns (msh.p), bnd); + assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) +***** test + u = y; + bnd = bim3c_unknowns_on_faces (msh, [3, 4]); + int = setdiff (1:columns (msh.p), bnd); + assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) +***** test + u = z; + bnd = bim3c_unknowns_on_faces (msh, [5, 6]); + int = setdiff (1:columns (msh.p), bnd); + assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) +***** test + u = z; + bnd = bim3c_unknowns_on_faces (msh, [5, 6]); + int = setdiff (1:columns (msh.p), bnd); + M = bim3a_osc_laplacian (msh, pi); + assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/bim2c_mesh_properties.m] +>>>>> /build/octave-bim-1.1.6/inst/bim2c_mesh_properties.m +***** shared mesh ***** test ***** test ***** test 3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim2a_reaction.m] ->>>>> /build/octave-bim-1.1.6/inst/bim2a_reaction.m -***** shared mesh,delta,zeta,nnodes,nelem +[inst/bim1a_axisymmetric_reaction.m] +>>>>> /build/octave-bim-1.1.6/inst/bim1a_axisymmetric_reaction.m +***** test + n = 100; + mesh = linspace(0,1,n+1)'; + cm = (mesh(1:end-1) + mesh(2:end))/2; + uex = @(r) - r.^2 + 1; + Nnodes = numel(mesh); + Nelements = Nnodes-1; + D = 1; v = cm; sigma = 1; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + beta = 0; + delta = ones(Nelements,1); + zeta = sigma*ones(Nnodes,1); + f = @(r) 4*D + sigma*uex(r); + rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); + S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + R = bim1a_axisymmetric_reaction(mesh, delta, zeta); + S += R; + u = zeros(Nnodes,1); u(end) = uex(mesh(end)); + u(1:end-1) = S(1:end-1,1:end-1)\(rhs(1:end-1) - S(1:end-1,end)*u(end)); + assert(u,uex(mesh),1e-3) +***** test + n = 100; + mesh = linspace(0,1,n+1)'; + cm = (mesh(1:end-1) + mesh(2:end))/2; + uex = @(r) - r.^2 + 1; + Nnodes = numel(mesh); + Nelements = Nnodes-1; + D = 1; v = cm; sigma = 1; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + beta = 1/D*v; + delta = ones(Nelements,1); + zeta = sigma*ones(Nnodes,1); + f = @(r) 4*D + 2 - 4*r.^2 + sigma*uex(r); + rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); + S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + R = bim1a_axisymmetric_reaction(mesh, delta, zeta); + S += R; + u = zeros(Nnodes,1); u(end) = uex(mesh(end)); + u(1:end-1) = S(1:end-1,1:end-1)\(rhs(1:end-1) - S(1:end-1,end)*u(end)); + assert(u,uex(mesh),1e-3) +***** test + x = linspace(0,1,101); + A = bim1a_axisymmetric_reaction(x,1,1); + delta = ones(100,1); + zeta = ones(101,1); + B = bim1a_axisymmetric_reaction(x,delta,zeta); + assert(A,B) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/bim3c_unknowns_on_faces.m] +>>>>> /build/octave-bim-1.1.6/inst/bim3c_unknowns_on_faces.m +***** shared mesh ***** test ***** test ***** test 3 tests, 3 passed, 0 known failure, 0 skipped +[inst/bim3c_intrp.m] +>>>>> /build/octave-bim-1.1.6/inst/bim3c_intrp.m +***** test + msh = bim3c_mesh_properties (msh3m_structured_mesh (linspace (0, 1, 11), linspace (0, 1, 9), linspace (0, 1, 13), 1, 1:6)); + x = y = z = linspace (0, 1, 100).'; + u = msh.p(1, :).'; + ui = bim3c_intrp (msh, u, [], [x, y, z]); + assert (ui, linspace (0, 1, 100), 10*eps); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/bim1a_advection_upwind.m] +>>>>> /build/octave-bim-1.1.6/inst/bim1a_advection_upwind.m +***** test + n = 200; + mesh = linspace(0,1,n+1)'; + uex = @(r) - r.^2 + 1; + Nnodes = numel(mesh); + Nelements = Nnodes-1; + D = 1; v = 1; sigma = 0; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + beta = 1/D*v*ones(Nelements,1); + delta = ones(Nelements,1); + zeta = sigma*ones(Nnodes,1); + f = @(r) 2*D - 2*v.*r + sigma*uex(r); + rhs = bim1a_rhs(mesh, ones(Nelements,1), f(mesh)); + S = bim1a_laplacian(mesh,alpha,gamma); + A = bim1a_advection_upwind(mesh, beta); + R = bim1a_reaction(mesh, delta, zeta); + S += (A+R); + u = zeros(Nnodes,1); u([1 end]) = uex(mesh([1 end])); + u(2:end-1) = S(2:end-1,2:end-1)\(rhs(2:end-1) - S(2:end-1,[1 end])*u([1 end])); + assert(u,uex(mesh),1e-3) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/bim1a_rhs.m] +>>>>> /build/octave-bim-1.1.6/inst/bim1a_rhs.m +***** test + x = linspace(0,1,101); + A = bim1a_rhs(x,1,1); + delta = ones(100,1); + zeta = ones(101,1); + B = bim1a_rhs(x,delta,zeta); + assert(A,B) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/bim2a_axisymmetric_boundary_mass.m] +>>>>> /build/octave-bim-1.1.6/inst/bim2a_axisymmetric_boundary_mass.m +***** test + n = 3; + [mesh] = msh2m_structured_mesh(linspace(1,2,n+1),linspace(0,1,n+1),1,1:4); + mesh = bim2c_mesh_properties(mesh); + uex = @(r,z) exp(r); + duexdr = @(r,z) uex(r,z); + d2uexdr2 = @(r,z) uex(r,z); + duexdz = @(r,z) 0*uex(r,z); + d2uexdz2 = @(r,z) 0*uex(r,z); + Rnodesr = bim2c_unknowns_on_side(mesh,[2]); + Rnodesl = bim2c_unknowns_on_side(mesh,[4]); + Nnodes = columns(mesh.p); + Nelements = columns(mesh.t); + D = 1; vr = 1; vz = 0; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + beta = 1/D*[vr*ones(1,Nelements); vz*ones(1,Nelements)]; + f = @(r,z) -D./r.*duexdr(r,z) - D.*d2uexdr2(r,z) ... + + vr./r .* uex(r,z) + vr * duexdr(r,z) ... + - D.*d2uexdz2(r,z) + vz * duexdz(r,z); + gr = @(r,z) uex(r,z) - 1 * (-D*duexdr(r,z) + vr*uex(r,z)); + gl = @(r,z) uex(r,z) - (-1) * (-D*duexdr(r,z) + vr*uex(r,z)); + rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh.p(1,:), mesh.p(2,:))); + S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + Mr = bim2a_axisymmetric_boundary_mass(mesh,2); Ml = bim2a_axisymmetric_boundary_mass(mesh,4); + S(Rnodesr,Rnodesr) += Mr; + rhs(Rnodesr) += diag(Mr) .* gr(mesh.p(1,Rnodesr), mesh.p(2,Rnodesr))'; + S(Rnodesl,Rnodesl) += Ml; + rhs(Rnodesl) += diag(Ml) .* gl(mesh.p(1,Rnodesl), mesh.p(2,Rnodesl))'; + u = S\rhs; + assert(u,uex(mesh.p(1,:), mesh.p(2,:))',1e-7) +warning: 'matrix' object indexed with empty index list +warning: called from + msh2m_geometrical_properties>computearea at line 406 column 7 + msh2m_geometrical_properties at line 167 column 13 + bim2c_mesh_properties at line 44 column 40 + __test__ at line 5 column 9 + test at line 683 column 11 + /tmp/tmp.S2pZGJNoj5 at line 70 column 31 + +***** test + n = 10; + [mesh] = msh2m_structured_mesh(linspace(1,2,n+1),linspace(0,1,n+1),1,1:4); + mesh = bim2c_mesh_properties(mesh); + uex = @(r,z) exp(r); + duexdr = @(r,z) uex(r,z); + d2uexdr2 = @(r,z) uex(r,z); + duexdz = @(r,z) 0*uex(r,z); + d2uexdz2 = @(r,z) 0*uex(r,z); + Rnodesr = bim2c_unknowns_on_side(mesh,[2]); + Rnodesl = bim2c_unknowns_on_side(mesh,[4]); + Rnodesb = bim2c_unknowns_on_side(mesh,[1]); + Rnodest = bim2c_unknowns_on_side(mesh,[3]); + Nnodes = columns(mesh.p); + Nelements = columns(mesh.t); + D = 1; vr = 1; vz = 0; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + beta = 1/D*[vr*ones(1,Nelements); vz*ones(1,Nelements)]; + f = @(r,z) -D./r.*duexdr(r,z) - D.*d2uexdr2(r,z) ... + + vr./r .* uex(r,z) + vr * duexdr(r,z) ... + - D.*d2uexdz2(r,z) + vz * duexdz(r,z); + gr = @(r,z) uex(r,z) - 1 * (-D*duexdr(r,z) + vr*uex(r,z)); + gl = @(r,z) uex(r,z) - (-1) * (-D*duexdr(r,z) + vr*uex(r,z)); + gb = @(r,z) uex(r,z) - (-1) * (-D*duexdz(r,z) + vz*uex(r,z)); + gt = @(r,z) uex(r,z) - 1 * (-D*duexdz(r,z) + vz*uex(r,z)); + rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh.p(1,:), mesh.p(2,:))); + S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + Mr = bim2a_axisymmetric_boundary_mass(mesh,2); Ml = bim2a_axisymmetric_boundary_mass(mesh,4); + Mb = bim2a_axisymmetric_boundary_mass(mesh,1); Mt = bim2a_axisymmetric_boundary_mass(mesh,3); + S(Rnodesr,Rnodesr) += Mr; + rhs(Rnodesr) += diag(Mr) .* gr(mesh.p(1,Rnodesr), mesh.p(2,Rnodesr))'; + S(Rnodesl,Rnodesl) += Ml; + rhs(Rnodesl) += diag(Ml) .* gl(mesh.p(1,Rnodesl), mesh.p(2,Rnodesl))'; + S(Rnodesb,Rnodesb) += Mb; + rhs(Rnodesb) += diag(Mb) .* gb(mesh.p(1,Rnodesb), mesh.p(2,Rnodesb))'; + S(Rnodest,Rnodest) += Mt; + rhs(Rnodest) += diag(Mt) .* gt(mesh.p(1,Rnodest), mesh.p(2,Rnodest))'; + u = S\rhs; + assert(u,uex(mesh.p(1,:), mesh.p(2,:))',1e-7) +warning: 'matrix' object indexed with empty index list +warning: called from + msh2m_geometrical_properties>computearea at line 406 column 7 + msh2m_geometrical_properties at line 167 column 13 + bim2c_mesh_properties at line 44 column 40 + __test__ at line 5 column 9 + test at line 683 column 11 + /tmp/tmp.S2pZGJNoj5 at line 70 column 31 + +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/bim1c_norm.m] +>>>>> /build/octave-bim-1.1.6/inst/bim1c_norm.m +***** xtest +***** shared L, V, m + L = rand (1); V = rand (1); m = linspace (0,1,5).^2; m *= L; + u = V * ones (size (m))'; + uinf = bim1c_norm (m, u, 'inf'); + uL2 = bim1c_norm (m, u, 'L2'); + uH1 = bim1c_norm (m, u, 'H1'); + assert ([uinf, uL2, uH1], [V, V*sqrt(L), V*sqrt(L)], 1e-12); +***** test + u = V * m'; + uinf = bim1c_norm (m, u, 'inf'); + uL2 = bim1c_norm (m, u, 'L2'); + uH1 = bim1c_norm (m, u, 'H1'); + assert ([uinf, uL2, uH1], + [L*V, V*sqrt(L^3/3), V*sqrt(L^3/3 + L)], + 1e-12); +***** test + u = V * ones (size (diff (m)))'; + uinf = bim1c_norm (m, u, 'inf'); + uL2 = bim1c_norm (m, u, 'L2'); + assert ([uinf, uL2], [V, V*sqrt(L)], 1e-12); +3 tests, 3 passed, 0 known failure, 0 skipped [inst/bim2a_advection_diffusion.m] >>>>> /build/octave-bim-1.1.6/inst/bim2a_advection_diffusion.m ***** test @@ -3100,7 +3392,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 4 column 9 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 30 column 31 + /tmp/tmp.S2pZGJNoj5 at line 86 column 31 ***** test [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); @@ -3126,7 +3418,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 4 column 9 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 30 column 31 + /tmp/tmp.S2pZGJNoj5 at line 86 column 31 ***** test [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); @@ -3152,7 +3444,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 4 column 9 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 30 column 31 + /tmp/tmp.S2pZGJNoj5 at line 86 column 31 ***** test [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); @@ -3177,7 +3469,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 4 column 9 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 30 column 31 + /tmp/tmp.S2pZGJNoj5 at line 86 column 31 ***** test [mesh] = msh2m_structured_mesh([0:1/1e3:1],[0:1/2:1],1,1:4); @@ -3203,7 +3495,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 4 column 9 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 30 column 31 + /tmp/tmp.S2pZGJNoj5 at line 86 column 31 ***** test [mesh] = msh2m_structured_mesh([0:1/1e3:1],[0:1/2:1],1,1:4); @@ -3229,7 +3521,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 4 column 7 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 30 column 31 + /tmp/tmp.S2pZGJNoj5 at line 86 column 31 ***** test [mesh] = msh2m_structured_mesh([0:.1:1],[0:.1:1],1,1:4); @@ -3259,7 +3551,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 4 column 7 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 30 column 31 + /tmp/tmp.S2pZGJNoj5 at line 86 column 31 ***** test [mesh] = msh2m_structured_mesh([0:.1:1],[0:.1:1],1,1:4); @@ -3280,81 +3572,18 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 4 column 9 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 30 column 31 + /tmp/tmp.S2pZGJNoj5 at line 86 column 31 8 tests, 8 passed, 0 known failure, 0 skipped -[inst/bim1c_elem_to_nodes.m] ->>>>> /build/octave-bim-1.1.6/inst/bim1c_elem_to_nodes.m -***** test - n = 10; msh = linspace (0, 1, n+1); - nel = n; - nnod = n+1; - u_el = randn (nel, 1); - un1 = bim1c_elem_to_nodes (msh, u_el); - [un2, m] = bim1c_elem_to_nodes (msh, u_el); - un3 = bim1c_elem_to_nodes (m, u_el); - [un4, m] = bim1c_elem_to_nodes (m, u_el); - assert (un1, un2, 1e-10) - assert (un1, un3, 1e-10) - assert (un1, un4, 1e-10) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim2c_intrp.m] ->>>>> /build/octave-bim-1.1.6/inst/bim2c_intrp.m -***** test - msh = bim2c_mesh_properties (msh2m_structured_mesh (linspace (0, 1, 11), linspace (0, 1, 13), 1, 1:4)); - x = y = linspace (0, 1, 100).'; - u = msh.p(1, :).'; - ui = bim2c_intrp (msh, u, [], [x, y]); - assert (ui, linspace (0, 1, 100), 10*eps); -warning: 'matrix' object indexed with empty index list -warning: called from - msh2m_geometrical_properties>computearea at line 406 column 7 - msh2m_geometrical_properties at line 167 column 13 - bim2c_mesh_properties at line 44 column 40 - __test__ at line 3 column 6 - test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 46 column 31 - -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim1a_axisymmetric_advection_upwind.m] ->>>>> /build/octave-bim-1.1.6/inst/bim1a_axisymmetric_advection_upwind.m -***** test - nn = 20; - mesh = linspace(1,2,nn+1)'; - D = 1; v = 0; sigma = 0; - uex = @(r) exp(r); - duexdr = @(r) uex(r); - d2uexdr2 = @(r) uex(r); - f = @(r,z) -D./r.*duexdr(r) - D.*d2uexdr2(r) ... - + v./r .* uex(r) + v * duexdr(r) ... - + sigma * uex(r); - uex_left = uex(mesh(1)); uex_right = uex(mesh(end)); - Ar = bim1a_axisymmetric_laplacian (mesh, D, 1); - Adv = bim1a_axisymmetric_advection_upwind (mesh, v*ones(nn,1)); - R = bim1a_axisymmetric_reaction (mesh, sigma, 1); - M = Ar + Adv + R; - M(1,:) *= 0; M(1,1) = 1; - M(end,:) *= 0; M(end, end) = 1; - rhs = bim1a_axisymmetric_rhs (mesh, 1, f(mesh)); - rhs(1) = uex_left; rhs(end) = uex_right; - uh = M \ rhs; - assert(uh, uex(mesh), 1e-3); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim2c_mesh_properties.m] ->>>>> /build/octave-bim-1.1.6/inst/bim2c_mesh_properties.m -***** shared mesh -***** test -***** test -***** test -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim1a_axisymmetric_rhs.m] ->>>>> /build/octave-bim-1.1.6/inst/bim1a_axisymmetric_rhs.m +[inst/bim1a_advection_diffusion.m] +>>>>> /build/octave-bim-1.1.6/inst/bim1a_advection_diffusion.m ***** test x = linspace(0,1,101); - A = bim1a_axisymmetric_rhs(x,1,1); - delta = ones(100,1); - zeta = ones(101,1); - B = bim1a_axisymmetric_rhs(x,delta,zeta); + A = bim1a_advection_diffusion(x,1,1,1,0); + alpha = ones(100,1); + gamma = ones(101,1); + eta = gamma; + B = bim1a_advection_diffusion(x,alpha,gamma,eta,0); assert(A,B) 1 test, 1 passed, 0 known failure, 0 skipped [inst/bim2a_axisymmetric_rhs.m] @@ -3364,110 +3593,6 @@ ***** test ***** test 3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim1a_rhs.m] ->>>>> /build/octave-bim-1.1.6/inst/bim1a_rhs.m -***** test - x = linspace(0,1,101); - A = bim1a_rhs(x,1,1); - delta = ones(100,1); - zeta = ones(101,1); - B = bim1a_rhs(x,delta,zeta); - assert(A,B) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim2a_axisymmetric_boundary_mass.m] ->>>>> /build/octave-bim-1.1.6/inst/bim2a_axisymmetric_boundary_mass.m -***** test - n = 3; - [mesh] = msh2m_structured_mesh(linspace(1,2,n+1),linspace(0,1,n+1),1,1:4); - mesh = bim2c_mesh_properties(mesh); - uex = @(r,z) exp(r); - duexdr = @(r,z) uex(r,z); - d2uexdr2 = @(r,z) uex(r,z); - duexdz = @(r,z) 0*uex(r,z); - d2uexdz2 = @(r,z) 0*uex(r,z); - Rnodesr = bim2c_unknowns_on_side(mesh,[2]); - Rnodesl = bim2c_unknowns_on_side(mesh,[4]); - Nnodes = columns(mesh.p); - Nelements = columns(mesh.t); - D = 1; vr = 1; vz = 0; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = 1/D*[vr*ones(1,Nelements); vz*ones(1,Nelements)]; - f = @(r,z) -D./r.*duexdr(r,z) - D.*d2uexdr2(r,z) ... - + vr./r .* uex(r,z) + vr * duexdr(r,z) ... - - D.*d2uexdz2(r,z) + vz * duexdz(r,z); - gr = @(r,z) uex(r,z) - 1 * (-D*duexdr(r,z) + vr*uex(r,z)); - gl = @(r,z) uex(r,z) - (-1) * (-D*duexdr(r,z) + vr*uex(r,z)); - rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh.p(1,:), mesh.p(2,:))); - S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - Mr = bim2a_axisymmetric_boundary_mass(mesh,2); Ml = bim2a_axisymmetric_boundary_mass(mesh,4); - S(Rnodesr,Rnodesr) += Mr; - rhs(Rnodesr) += diag(Mr) .* gr(mesh.p(1,Rnodesr), mesh.p(2,Rnodesr))'; - S(Rnodesl,Rnodesl) += Ml; - rhs(Rnodesl) += diag(Ml) .* gl(mesh.p(1,Rnodesl), mesh.p(2,Rnodesl))'; - u = S\rhs; - assert(u,uex(mesh.p(1,:), mesh.p(2,:))',1e-7) -warning: 'matrix' object indexed with empty index list -warning: called from - msh2m_geometrical_properties>computearea at line 406 column 7 - msh2m_geometrical_properties at line 167 column 13 - bim2c_mesh_properties at line 44 column 40 - __test__ at line 5 column 9 - test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 94 column 31 - -***** test - n = 10; - [mesh] = msh2m_structured_mesh(linspace(1,2,n+1),linspace(0,1,n+1),1,1:4); - mesh = bim2c_mesh_properties(mesh); - uex = @(r,z) exp(r); - duexdr = @(r,z) uex(r,z); - d2uexdr2 = @(r,z) uex(r,z); - duexdz = @(r,z) 0*uex(r,z); - d2uexdz2 = @(r,z) 0*uex(r,z); - Rnodesr = bim2c_unknowns_on_side(mesh,[2]); - Rnodesl = bim2c_unknowns_on_side(mesh,[4]); - Rnodesb = bim2c_unknowns_on_side(mesh,[1]); - Rnodest = bim2c_unknowns_on_side(mesh,[3]); - Nnodes = columns(mesh.p); - Nelements = columns(mesh.t); - D = 1; vr = 1; vz = 0; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = 1/D*[vr*ones(1,Nelements); vz*ones(1,Nelements)]; - f = @(r,z) -D./r.*duexdr(r,z) - D.*d2uexdr2(r,z) ... - + vr./r .* uex(r,z) + vr * duexdr(r,z) ... - - D.*d2uexdz2(r,z) + vz * duexdz(r,z); - gr = @(r,z) uex(r,z) - 1 * (-D*duexdr(r,z) + vr*uex(r,z)); - gl = @(r,z) uex(r,z) - (-1) * (-D*duexdr(r,z) + vr*uex(r,z)); - gb = @(r,z) uex(r,z) - (-1) * (-D*duexdz(r,z) + vz*uex(r,z)); - gt = @(r,z) uex(r,z) - 1 * (-D*duexdz(r,z) + vz*uex(r,z)); - rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh.p(1,:), mesh.p(2,:))); - S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - Mr = bim2a_axisymmetric_boundary_mass(mesh,2); Ml = bim2a_axisymmetric_boundary_mass(mesh,4); - Mb = bim2a_axisymmetric_boundary_mass(mesh,1); Mt = bim2a_axisymmetric_boundary_mass(mesh,3); - S(Rnodesr,Rnodesr) += Mr; - rhs(Rnodesr) += diag(Mr) .* gr(mesh.p(1,Rnodesr), mesh.p(2,Rnodesr))'; - S(Rnodesl,Rnodesl) += Ml; - rhs(Rnodesl) += diag(Ml) .* gl(mesh.p(1,Rnodesl), mesh.p(2,Rnodesl))'; - S(Rnodesb,Rnodesb) += Mb; - rhs(Rnodesb) += diag(Mb) .* gb(mesh.p(1,Rnodesb), mesh.p(2,Rnodesb))'; - S(Rnodest,Rnodest) += Mt; - rhs(Rnodest) += diag(Mt) .* gt(mesh.p(1,Rnodest), mesh.p(2,Rnodest))'; - u = S\rhs; - assert(u,uex(mesh.p(1,:), mesh.p(2,:))',1e-7) -warning: 'matrix' object indexed with empty index list -warning: called from - msh2m_geometrical_properties>computearea at line 406 column 7 - msh2m_geometrical_properties at line 167 column 13 - bim2c_mesh_properties at line 44 column 40 - __test__ at line 5 column 9 - test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 94 column 31 - -2 tests, 2 passed, 0 known failure, 0 skipped [inst/bim3c_mesh_properties.m] >>>>> /build/octave-bim-1.1.6/inst/bim3c_mesh_properties.m ***** shared mesh @@ -3476,83 +3601,13 @@ ***** test ***** test 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/bim1a_axisymmetric_advection_diffusion.m] ->>>>> /build/octave-bim-1.1.6/inst/bim1a_axisymmetric_advection_diffusion.m -***** test - n = 3; - mesh = linspace(1,2,n+1)'; - uex = @(r) exp(r); - duexdr = @(r) uex(r); - d2uexdr2 = @(r) uex(r); - Nnodes = numel(mesh); - Nelements = Nnodes-1; - D = 1; v = 1; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = 1/D*v*ones(Nelements,1); - f = @(r) -D./r.*duexdr(r) - D.*d2uexdr2(r) ... - + v./r .* uex(r) + v * duexdr(r); - rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); - S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); u([1,end]) = uex(mesh([1 end])); - u(2:end-1) = S(2:end-1,2:end-1)\(rhs(2:end-1) - S(2:end-1,[1 end])*u([1 end])); - assert(u,uex(mesh),1e-7) -***** test - n = 100; - mesh = linspace(0,1,n+1)'; - cm = (mesh(1:end-1) + mesh(2:end))/2; - uex = @(r) - r.^2 + 1; - Nnodes = numel(mesh); - Nelements = Nnodes-1; - D = 1; v = 0; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = v; - f = @(r) 4*D; - rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); - S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); u(end) = uex(mesh(end)); - u(1:end-1) = S(1:end-1,1:end-1)\(rhs(1:end-1) - S(1:end-1,end)*u(end)); - assert(u,uex(mesh),1e-3) +[inst/bim3a_rhs.m] +>>>>> /build/octave-bim-1.1.6/inst/bim3a_rhs.m +***** shared mesh,f,g,nnodes,nelem ***** test - n = 100; - mesh = linspace(0,1,n+1)'; - cm = (mesh(1:end-1) + mesh(2:end))/2; - uex = @(r) - r.^2 + 1; - Nnodes = numel(mesh); - Nelements = Nnodes-1; - D = 1; v = cm; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = 1/D*v; - f = @(r) 4*D + 2 - 4*r.^2; - rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); - S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); u(end) = uex(mesh(end)); - u(1:end-1) = S(1:end-1,1:end-1)\(rhs(1:end-1) - S(1:end-1,end)*u(end)); - assert(u,uex(mesh),1e-3) ***** test - x = linspace(0,1,101); - A = bim1a_axisymmetric_advection_diffusion(x,1,1,1,0); - alpha = ones(100,1); - gamma = ones(101,1); - eta = gamma; - B = bim1a_axisymmetric_advection_diffusion(x,alpha,gamma,eta,0); - assert(A,B) -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/bim3c_global_flux.m] ->>>>> /build/octave-bim-1.1.6/inst/bim3c_global_flux.m ***** test - N = 10; pp = linspace (0, 1, N); msh = bim3c_mesh_properties (msh3m_structured_mesh (pp, pp, pp, 1, 1:6)); - u = ones (N^3, 1); - v = ones (N^3, 1); - alpha = ones (columns (msh.t), 1); - F = bim3c_global_flux (msh, u, alpha, v); - assert (norm (F(:), inf), 0, 100*eps); -1 test, 1 passed, 0 known failure, 0 skipped +3 tests, 3 passed, 0 known failure, 0 skipped [inst/bim2c_norm.m] >>>>> /build/octave-bim-1.1.6/inst/bim2c_norm.m ***** test @@ -3586,203 +3641,60 @@ uL2 = bim2c_norm (m, uvect, 'L2'); assert ([uinf, uL2], [2*V, V*L*sqrt(5)], 1e-12); 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/bim1c_norm.m] ->>>>> /build/octave-bim-1.1.6/inst/bim1c_norm.m -***** xtest -***** shared L, V, m - L = rand (1); V = rand (1); m = linspace (0,1,5).^2; m *= L; - u = V * ones (size (m))'; - uinf = bim1c_norm (m, u, 'inf'); - uL2 = bim1c_norm (m, u, 'L2'); - uH1 = bim1c_norm (m, u, 'H1'); - assert ([uinf, uL2, uH1], [V, V*sqrt(L), V*sqrt(L)], 1e-12); -***** test - u = V * m'; - uinf = bim1c_norm (m, u, 'inf'); - uL2 = bim1c_norm (m, u, 'L2'); - uH1 = bim1c_norm (m, u, 'H1'); - assert ([uinf, uL2, uH1], - [L*V, V*sqrt(L^3/3), V*sqrt(L^3/3 + L)], - 1e-12); -***** test - u = V * ones (size (diff (m)))'; - uinf = bim1c_norm (m, u, 'inf'); - uL2 = bim1c_norm (m, u, 'L2'); - assert ([uinf, uL2], [V, V*sqrt(L)], 1e-12); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim3c_unknowns_on_faces.m] ->>>>> /build/octave-bim-1.1.6/inst/bim3c_unknowns_on_faces.m -***** shared mesh +[inst/bim2a_reaction.m] +>>>>> /build/octave-bim-1.1.6/inst/bim2a_reaction.m +***** shared mesh,delta,zeta,nnodes,nelem ***** test ***** test ***** test 3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim3a_osc_advection_diffusion.m] ->>>>> /build/octave-bim-1.1.6/inst/bim3a_osc_advection_diffusion.m -***** shared msh, epsilon, M, nnodes, nelem, x, y, z -***** test - msh = bim3c_mesh_properties (msh3m_structured_mesh (0:5, 0:5, 0:5, 1, 1:6)); - x = msh.p (1, :).'; - y = msh.p (2, :).'; - z = msh.p (3, :).'; - u = ones (size (x)); - M = bim3a_osc_advection_diffusion (msh, 1, 0); - assert (M * u, zeros (size (u)), eps * 100) -***** test - u = x; - bnd = bim3c_unknowns_on_faces (msh, [1, 2]); - int = setdiff (1:columns (msh.p), bnd); - assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) -***** test - u = y; - bnd = bim3c_unknowns_on_faces (msh, [3, 4]); - int = setdiff (1:columns (msh.p), bnd); - assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) +[inst/bim2a_axisymmetric_reaction.m] +>>>>> /build/octave-bim-1.1.6/inst/bim2a_axisymmetric_reaction.m +***** shared mesh,delta,zeta,nnodes,nelem ***** test - u = z; - bnd = bim3c_unknowns_on_faces (msh, [5, 6]); - int = setdiff (1:columns (msh.p), bnd); - assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) ***** test - u = z; - bnd = bim3c_unknowns_on_faces (msh, [5, 6]); - int = setdiff (1:columns (msh.p), bnd); - M = bim3a_osc_advection_diffusion (msh, pi, 0); - assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) ***** test - M = bim3a_osc_advection_diffusion (msh, 1, x); - assert (norm (sum (M, 1), inf), 0, eps * 100) ***** test - M = bim3a_osc_advection_diffusion (msh, 1, y); - assert (norm (sum (M, 1), inf), 0, eps * 100) -***** test - M = bim3a_osc_advection_diffusion (msh, 1, z); - assert (norm (sum (M, 1), inf), 0, eps * 100) -***** demo - gmsh_input = [["Point(1) = {0, 0, 0, .1}; \n"], ... - ["Point(2) = {1, 0, 0, .1}; \n"], ... - ["Point(3) = {0, -.3, 0, .1}; \n"], ... - ["Point(4) = {0, +.3, 0, .1}; \n"], ... - ["Point(5) = {1, -.3, 0, .1}; \n"], ... - ["Point(6) = {1, 0.3, 0, .1}; \n"], ... - ["Point(7) = {0, 0, -.3, .1}; \n"], ... - ["Point(8) = {0, 0, +.3, .1}; \n"], ... - ["Point(9) = {1, 0, -.3, .1}; \n"], ... - ["Point(10) = {1, 0, 0.3, .1}; \n"], ... - ["Circle(1) = {4, 1, 7}; \n"], ... - ["Circle(2) = {7, 1, 3}; \n"], ... - ["Circle(3) = {3, 1, 8}; \n"], ... - ["Circle(4) = {8, 1, 4}; \n"], ... - ["Circle(5) = {6, 2, 9}; \n"], ... - ["Circle(6) = {9, 2, 5}; \n"], ... - ["Circle(7) = {5, 2, 10}; \n"], ... - ["Circle(8) = {10, 2, 6}; \n"], ... - ["Line(9) = {4, 6}; \n"], ... - ["Line(10) = {3, 5}; \n"], ... - ["Line(11) = {8, 10}; \n"], ... - ["Line(12) = {7, 9}; \n"], ... - ["Line Loop(13) = {4, 1, 2, 3}; \n"], ... - ["Plane Surface(14) = {13}; \n"], ... - ["Line Loop(15) = {5, 6, 7, 8}; \n"], ... - ["Plane Surface(16) = {15}; \n"], ... - ["Line Loop(17) = {9, -8, -11, 4}; \n"], ... - ["Ruled Surface(18) = {17}; \n"], ... - ["Line Loop(19) = {12, -5, -9, 1}; \n"], ... - ["Ruled Surface(20) = {19}; \n"], ... - ["Line Loop(21) = {12, 6, -10, -2}; \n"], ... - ["Ruled Surface(22) = {21}; \n"], ... - ["Line Loop(23) = {11, -7, -10, 3}; \n"], ... - ["Ruled Surface(24) = {23}; \n"], ... - ["Surface Loop(25) = {18, 20, 22, 16, 24, 14}; \n"], ... - ["Volume(26) = {25}; \n"]]; - fname = tmpnam (); - [fid, msg] = fopen (strcat (fname, ".geo"), "w"); - if (fid < 0); error (msg); endif - fputs (fid, gmsh_input); - fclose (fid); - msh = bim3c_mesh_properties (msh3m_gmsh (fname, "clscale", ".25")); - x = msh.p (1, :).'; - u = x; - bnd = bim3c_unknowns_on_faces (msh, [14, 16]); - int = setdiff (1:columns (msh.p), bnd); - Mosc = bim3a_osc_advection_diffusion (msh, 1, msh.p(1,:)'*0); - Mgal = bim3a_advection_diffusion (msh, 1, msh.p(1,:)'*0); - u(int) = Mosc(int, int) \ ( - Mosc(int, bnd) * u(bnd)); - uosc = u; - u(int) = Mgal(int, int) \ ( - Mgal(int, bnd) * u(bnd)); - ugal = u; - fname_out = tmpnam (); - printf ("saving results to %s \n", strcat (fname_out, ".vtu")); - fpl_vtk_raw_write_field (fname_out, msh, {uosc, "u_osc"; ugal, "u_galerkin"}, {}); - unlink (fname); -***** demo - gmsh_input = [["Point(1) = {0, 0, 0, .1}; \n"], ... - ["Point(2) = {1, 0, 0, .1}; \n"], ... - ["Point(3) = {0, -.3, 0, .1}; \n"], ... - ["Point(4) = {0, +.3, 0, .1}; \n"], ... - ["Point(5) = {1, -.3, 0, .1}; \n"], ... - ["Point(6) = {1, 0.3, 0, .1}; \n"], ... - ["Point(7) = {0, 0, -.3, .1}; \n"], ... - ["Point(8) = {0, 0, +.3, .1}; \n"], ... - ["Point(9) = {1, 0, -.3, .1}; \n"], ... - ["Point(10) = {1, 0, 0.3, .1}; \n"], ... - ["Circle(1) = {4, 1, 7}; \n"], ... - ["Circle(2) = {7, 1, 3}; \n"], ... - ["Circle(3) = {3, 1, 8}; \n"], ... - ["Circle(4) = {8, 1, 4}; \n"], ... - ["Circle(5) = {6, 2, 9}; \n"], ... - ["Circle(6) = {9, 2, 5}; \n"], ... - ["Circle(7) = {5, 2, 10}; \n"], ... - ["Circle(8) = {10, 2, 6}; \n"], ... - ["Line(9) = {4, 6}; \n"], ... - ["Line(10) = {3, 5}; \n"], ... - ["Line(11) = {8, 10}; \n"], ... - ["Line(12) = {7, 9}; \n"], ... - ["Line Loop(13) = {4, 1, 2, 3}; \n"], ... - ["Plane Surface(14) = {13}; \n"], ... - ["Line Loop(15) = {5, 6, 7, 8}; \n"], ... - ["Plane Surface(16) = {15}; \n"], ... - ["Line Loop(17) = {9, -8, -11, 4}; \n"], ... - ["Ruled Surface(18) = {17}; \n"], ... - ["Line Loop(19) = {12, -5, -9, 1}; \n"], ... - ["Ruled Surface(20) = {19}; \n"], ... - ["Line Loop(21) = {12, 6, -10, -2}; \n"], ... - ["Ruled Surface(22) = {21}; \n"], ... - ["Line Loop(23) = {11, -7, -10, 3}; \n"], ... - ["Ruled Surface(24) = {23}; \n"], ... - ["Surface Loop(25) = {18, 20, 22, 16, 24, 14}; \n"], ... - ["Volume(26) = {25}; \n"]]; - fname = tmpnam (); - [fid, msg] = fopen (strcat (fname, ".geo"), "w"); - if (fid < 0); error (msg); endif - fputs (fid, gmsh_input); - fclose (fid); - msh = bim3c_mesh_properties (msh3m_gmsh (fname, "clscale", ".25")); - x = msh.p (1, :).'; - u = x; - bnd = bim3c_unknowns_on_faces (msh, [14, 16]); - int = setdiff (1:columns (msh.p), bnd); - Mosc = bim3a_osc_advection_diffusion (msh, 1, msh.p(1,:)'*0); - Mgal = bim3a_advection_diffusion (msh, 1, msh.p(1,:)'*0); - f = bim3a_rhs (msh, 10, 1); - u(int) = Mosc(int, int) \ (f(int) - Mosc(int, bnd) * u(bnd)); - uosc = u; - u(int) = Mgal(int, int) \ (f(int) - Mgal(int, bnd) * u(bnd)); - ugal = u; - fname_out = tmpnam (); - printf ("saving results to %s \n", strcat (fname_out, ".vtu")); - fpl_vtk_raw_write_field (fname_out, msh, {uosc, "u_osc"; ugal, "u_galerkin"}, {}); - unlink (fname); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/bim3c_intrp.m] ->>>>> /build/octave-bim-1.1.6/inst/bim3c_intrp.m -***** test - msh = bim3c_mesh_properties (msh3m_structured_mesh (linspace (0, 1, 11), linspace (0, 1, 9), linspace (0, 1, 13), 1, 1:6)); - x = y = z = linspace (0, 1, 100).'; - u = msh.p(1, :).'; - ui = bim3c_intrp (msh, u, [], [x, y, z]); - assert (ui, linspace (0, 1, 100), 10*eps); -1 test, 1 passed, 0 known failure, 0 skipped + n = 20; + [mesh] = msh2m_structured_mesh(linspace(1,2,n+1),linspace(0,1,n+1),1,1:4); + mesh = bim2c_mesh_properties(mesh); + uex = @(r,z) exp(r) .* exp(1-z); + duexdr = @(r,z) uex(r,z); + d2uexdr2 = @(r,z) uex(r,z); + duexdz = @(r,z) -uex(r,z); + d2uexdz2 = @(r,z) uex(r,z); + Dnodes = bim2c_unknowns_on_side(mesh,[1,2,3,4]); + Nnodes = columns(mesh.p); + Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + D = 1; vr = 1; vz = 1; sigma = 1; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + delta = sigma*ones(columns(mesh.t),1); + zeta = ones(columns(mesh.p),1); + beta = 1/D*[vr*ones(1,Nelements); vz*ones(1,Nelements)]; + f = @(r,z) -D./r.*duexdr(r,z) - D.*d2uexdr2(r,z) ... + + vr./r .* uex(r,z) + vr * duexdr(r,z) ... + - D.*d2uexdz2(r,z) + vz * duexdz(r,z) ... + + sigma * uex(r,z); + rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh.p(1,:), mesh.p(2,:))); + S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + C = bim2a_axisymmetric_reaction(mesh,delta,zeta); + S += C; + u = zeros(Nnodes,1); u(Dnodes) = uex(mesh.p(1,Dnodes), mesh.p(2,Dnodes)); + u(Varnodes) = S(Varnodes,Varnodes)\(rhs(Varnodes) - S(Varnodes,Dnodes)*u(Dnodes)); + assert(u,uex(mesh.p(1,:), mesh.p(2,:))',1e-3) +warning: 'matrix' object indexed with empty index list +warning: called from + msh2m_geometrical_properties>computearea at line 406 column 7 + msh2m_geometrical_properties at line 167 column 13 + bim2c_mesh_properties at line 44 column 40 + __test__ at line 5 column 9 + test at line 683 column 11 + /tmp/tmp.S2pZGJNoj5 at line 142 column 31 + +4 tests, 4 passed, 0 known failure, 0 skipped [inst/bim3c_norm.m] >>>>> /build/octave-bim-1.1.6/inst/bim3c_norm.m ***** test @@ -3827,136 +3739,90 @@ [un2, m] = bim3c_tri_to_nodes (msh, u_tri); assert (un1, un2, 1e-10) 1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim3a_osc_laplacian.m] ->>>>> /build/octave-bim-1.1.6/inst/bim3a_osc_laplacian.m -***** shared msh, epsilon, M, nnodes, nelem, x, y, z -***** test - msh = bim3c_mesh_properties (msh3m_structured_mesh (0:5, 0:5, 0:5, 1, 1:6)); - x = msh.p (1, :).'; - y = msh.p (2, :).'; - z = msh.p (3, :).'; - u = ones (size (x)); - M = bim3a_osc_laplacian (msh, 1); - assert (M * u, zeros (size (u)), eps * 100) -***** test - u = x; - bnd = bim3c_unknowns_on_faces (msh, [1, 2]); - int = setdiff (1:columns (msh.p), bnd); - assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) -***** test - u = y; - bnd = bim3c_unknowns_on_faces (msh, [3, 4]); - int = setdiff (1:columns (msh.p), bnd); - assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) -***** test - u = z; - bnd = bim3c_unknowns_on_faces (msh, [5, 6]); - int = setdiff (1:columns (msh.p), bnd); - assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) -***** test - u = z; - bnd = bim3c_unknowns_on_faces (msh, [5, 6]); - int = setdiff (1:columns (msh.p), bnd); - M = bim3a_osc_laplacian (msh, pi); - assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/bim1a_advection_diffusion.m] ->>>>> /build/octave-bim-1.1.6/inst/bim1a_advection_diffusion.m -***** test - x = linspace(0,1,101); - A = bim1a_advection_diffusion(x,1,1,1,0); - alpha = ones(100,1); - gamma = ones(101,1); - eta = gamma; - B = bim1a_advection_diffusion(x,alpha,gamma,eta,0); - assert(A,B) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim3a_rhs.m] ->>>>> /build/octave-bim-1.1.6/inst/bim3a_rhs.m +[inst/bim2a_rhs.m] +>>>>> /build/octave-bim-1.1.6/inst/bim2a_rhs.m ***** shared mesh,f,g,nnodes,nelem ***** test ***** test ***** test 3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim3a_laplacian.m] ->>>>> /build/octave-bim-1.1.6/inst/bim3a_laplacian.m -***** shared mesh,epsilon,kappa,nnodes,nelem -***** test -***** test +[inst/bim1a_axisymmetric_advection_diffusion.m] +>>>>> /build/octave-bim-1.1.6/inst/bim1a_axisymmetric_advection_diffusion.m ***** test -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim1a_advection_upwind.m] ->>>>> /build/octave-bim-1.1.6/inst/bim1a_advection_upwind.m + n = 3; + mesh = linspace(1,2,n+1)'; + uex = @(r) exp(r); + duexdr = @(r) uex(r); + d2uexdr2 = @(r) uex(r); + Nnodes = numel(mesh); + Nelements = Nnodes-1; + D = 1; v = 1; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + beta = 1/D*v*ones(Nelements,1); + f = @(r) -D./r.*duexdr(r) - D.*d2uexdr2(r) ... + + v./r .* uex(r) + v * duexdr(r); + rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); + S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); u([1,end]) = uex(mesh([1 end])); + u(2:end-1) = S(2:end-1,2:end-1)\(rhs(2:end-1) - S(2:end-1,[1 end])*u([1 end])); + assert(u,uex(mesh),1e-7) ***** test - n = 200; + n = 100; mesh = linspace(0,1,n+1)'; + cm = (mesh(1:end-1) + mesh(2:end))/2; uex = @(r) - r.^2 + 1; Nnodes = numel(mesh); Nelements = Nnodes-1; - D = 1; v = 1; sigma = 0; + D = 1; v = 0; alpha = D*ones(Nelements,1); gamma = ones(Nnodes,1); eta = ones(Nnodes,1); - beta = 1/D*v*ones(Nelements,1); - delta = ones(Nelements,1); - zeta = sigma*ones(Nnodes,1); - f = @(r) 2*D - 2*v.*r + sigma*uex(r); - rhs = bim1a_rhs(mesh, ones(Nelements,1), f(mesh)); - S = bim1a_laplacian(mesh,alpha,gamma); - A = bim1a_advection_upwind(mesh, beta); - R = bim1a_reaction(mesh, delta, zeta); - S += (A+R); - u = zeros(Nnodes,1); u([1 end]) = uex(mesh([1 end])); - u(2:end-1) = S(2:end-1,2:end-1)\(rhs(2:end-1) - S(2:end-1,[1 end])*u([1 end])); + beta = v; + f = @(r) 4*D; + rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); + S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); u(end) = uex(mesh(end)); + u(1:end-1) = S(1:end-1,1:end-1)\(rhs(1:end-1) - S(1:end-1,end)*u(end)); assert(u,uex(mesh),1e-3) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim2a_axisymmetric_reaction.m] ->>>>> /build/octave-bim-1.1.6/inst/bim2a_axisymmetric_reaction.m -***** shared mesh,delta,zeta,nnodes,nelem -***** test ***** test -***** test -***** test - n = 20; - [mesh] = msh2m_structured_mesh(linspace(1,2,n+1),linspace(0,1,n+1),1,1:4); - mesh = bim2c_mesh_properties(mesh); - uex = @(r,z) exp(r) .* exp(1-z); - duexdr = @(r,z) uex(r,z); - d2uexdr2 = @(r,z) uex(r,z); - duexdz = @(r,z) -uex(r,z); - d2uexdz2 = @(r,z) uex(r,z); - Dnodes = bim2c_unknowns_on_side(mesh,[1,2,3,4]); - Nnodes = columns(mesh.p); - Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - D = 1; vr = 1; vz = 1; sigma = 1; + n = 100; + mesh = linspace(0,1,n+1)'; + cm = (mesh(1:end-1) + mesh(2:end))/2; + uex = @(r) - r.^2 + 1; + Nnodes = numel(mesh); + Nelements = Nnodes-1; + D = 1; v = cm; alpha = D*ones(Nelements,1); gamma = ones(Nnodes,1); eta = ones(Nnodes,1); - delta = sigma*ones(columns(mesh.t),1); - zeta = ones(columns(mesh.p),1); - beta = 1/D*[vr*ones(1,Nelements); vz*ones(1,Nelements)]; - f = @(r,z) -D./r.*duexdr(r,z) - D.*d2uexdr2(r,z) ... - + vr./r .* uex(r,z) + vr * duexdr(r,z) ... - - D.*d2uexdz2(r,z) + vz * duexdz(r,z) ... - + sigma * uex(r,z); - rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh.p(1,:), mesh.p(2,:))); - S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - C = bim2a_axisymmetric_reaction(mesh,delta,zeta); - S += C; - u = zeros(Nnodes,1); u(Dnodes) = uex(mesh.p(1,Dnodes), mesh.p(2,Dnodes)); - u(Varnodes) = S(Varnodes,Varnodes)\(rhs(Varnodes) - S(Varnodes,Dnodes)*u(Dnodes)); - assert(u,uex(mesh.p(1,:), mesh.p(2,:))',1e-3) -warning: 'matrix' object indexed with empty index list -warning: called from - msh2m_geometrical_properties>computearea at line 406 column 7 - msh2m_geometrical_properties at line 167 column 13 - bim2c_mesh_properties at line 44 column 40 - __test__ at line 5 column 9 - test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 222 column 31 - + beta = 1/D*v; + f = @(r) 4*D + 2 - 4*r.^2; + rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); + S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); u(end) = uex(mesh(end)); + u(1:end-1) = S(1:end-1,1:end-1)\(rhs(1:end-1) - S(1:end-1,end)*u(end)); + assert(u,uex(mesh),1e-3) +***** test + x = linspace(0,1,101); + A = bim1a_axisymmetric_advection_diffusion(x,1,1,1,0); + alpha = ones(100,1); + gamma = ones(101,1); + eta = gamma; + B = bim1a_axisymmetric_advection_diffusion(x,alpha,gamma,eta,0); + assert(A,B) 4 tests, 4 passed, 0 known failure, 0 skipped +[inst/bim3c_global_flux.m] +>>>>> /build/octave-bim-1.1.6/inst/bim3c_global_flux.m +***** test + N = 10; pp = linspace (0, 1, N); msh = bim3c_mesh_properties (msh3m_structured_mesh (pp, pp, pp, 1, 1:6)); + u = ones (N^3, 1); + v = ones (N^3, 1); + alpha = ones (columns (msh.t), 1); + F = bim3c_global_flux (msh, u, alpha, v); + assert (norm (F(:), inf), 0, 100*eps); +1 test, 1 passed, 0 known failure, 0 skipped [inst/bim2a_axisymmetric_advection_diffusion.m] >>>>> /build/octave-bim-1.1.6/inst/bim2a_axisymmetric_advection_diffusion.m ***** test @@ -3992,7 +3858,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 5 column 12 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 230 column 31 + /tmp/tmp.S2pZGJNoj5 at line 190 column 31 ***** test n = 20; @@ -4027,7 +3893,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 5 column 12 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 230 column 31 + /tmp/tmp.S2pZGJNoj5 at line 190 column 31 ***** test n = 10; @@ -4062,7 +3928,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 5 column 12 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 230 column 31 + /tmp/tmp.S2pZGJNoj5 at line 190 column 31 ***** test n = 10; @@ -4095,7 +3961,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 5 column 12 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 230 column 31 + /tmp/tmp.S2pZGJNoj5 at line 190 column 31 ***** test n = 3; @@ -4130,7 +3996,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 5 column 12 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 230 column 31 + /tmp/tmp.S2pZGJNoj5 at line 190 column 31 ***** test n = 10; @@ -4163,7 +4029,7 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 5 column 12 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 230 column 31 + /tmp/tmp.S2pZGJNoj5 at line 190 column 31 ***** test [mesh] = msh2m_structured_mesh([0:.1:1],[0:.1:1],1,1:4); @@ -4184,9 +4050,23 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 4 column 9 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 230 column 31 + /tmp/tmp.S2pZGJNoj5 at line 190 column 31 7 tests, 7 passed, 0 known failure, 0 skipped +[inst/bim3a_reaction.m] +>>>>> /build/octave-bim-1.1.6/inst/bim3a_reaction.m +***** shared mesh,delta,zeta,nnodes,nelem +***** test +***** test +***** test +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/bim3a_laplacian.m] +>>>>> /build/octave-bim-1.1.6/inst/bim3a_laplacian.m +***** shared mesh,epsilon,kappa,nnodes,nelem +***** test +***** test +***** test +3 tests, 3 passed, 0 known failure, 0 skipped [inst/bim1a_reaction.m] >>>>> /build/octave-bim-1.1.6/inst/bim1a_reaction.m ***** test @@ -4197,67 +4077,173 @@ B = bim1a_reaction(x,delta,zeta); assert(A,B) 1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim1a_axisymmetric_reaction.m] ->>>>> /build/octave-bim-1.1.6/inst/bim1a_axisymmetric_reaction.m +[inst/bim3a_osc_advection_diffusion.m] +>>>>> /build/octave-bim-1.1.6/inst/bim3a_osc_advection_diffusion.m +***** shared msh, epsilon, M, nnodes, nelem, x, y, z ***** test - n = 100; - mesh = linspace(0,1,n+1)'; - cm = (mesh(1:end-1) + mesh(2:end))/2; - uex = @(r) - r.^2 + 1; - Nnodes = numel(mesh); - Nelements = Nnodes-1; - D = 1; v = cm; sigma = 1; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = 0; - delta = ones(Nelements,1); - zeta = sigma*ones(Nnodes,1); - f = @(r) 4*D + sigma*uex(r); - rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); - S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - R = bim1a_axisymmetric_reaction(mesh, delta, zeta); - S += R; - u = zeros(Nnodes,1); u(end) = uex(mesh(end)); - u(1:end-1) = S(1:end-1,1:end-1)\(rhs(1:end-1) - S(1:end-1,end)*u(end)); - assert(u,uex(mesh),1e-3) + msh = bim3c_mesh_properties (msh3m_structured_mesh (0:5, 0:5, 0:5, 1, 1:6)); + x = msh.p (1, :).'; + y = msh.p (2, :).'; + z = msh.p (3, :).'; + u = ones (size (x)); + M = bim3a_osc_advection_diffusion (msh, 1, 0); + assert (M * u, zeros (size (u)), eps * 100) ***** test - n = 100; - mesh = linspace(0,1,n+1)'; - cm = (mesh(1:end-1) + mesh(2:end))/2; - uex = @(r) - r.^2 + 1; - Nnodes = numel(mesh); - Nelements = Nnodes-1; - D = 1; v = cm; sigma = 1; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = 1/D*v; - delta = ones(Nelements,1); - zeta = sigma*ones(Nnodes,1); - f = @(r) 4*D + 2 - 4*r.^2 + sigma*uex(r); - rhs = bim1a_axisymmetric_rhs(mesh, ones(Nelements,1), f(mesh)); - S = bim1a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - R = bim1a_axisymmetric_reaction(mesh, delta, zeta); - S += R; - u = zeros(Nnodes,1); u(end) = uex(mesh(end)); - u(1:end-1) = S(1:end-1,1:end-1)\(rhs(1:end-1) - S(1:end-1,end)*u(end)); - assert(u,uex(mesh),1e-3) + u = x; + bnd = bim3c_unknowns_on_faces (msh, [1, 2]); + int = setdiff (1:columns (msh.p), bnd); + assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) +***** test + u = y; + bnd = bim3c_unknowns_on_faces (msh, [3, 4]); + int = setdiff (1:columns (msh.p), bnd); + assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) +***** test + u = z; + bnd = bim3c_unknowns_on_faces (msh, [5, 6]); + int = setdiff (1:columns (msh.p), bnd); + assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) +***** test + u = z; + bnd = bim3c_unknowns_on_faces (msh, [5, 6]); + int = setdiff (1:columns (msh.p), bnd); + M = bim3a_osc_advection_diffusion (msh, pi, 0); + assert (M(int, int) * u(int), -M(int, bnd) * u(bnd), 100 * eps) +***** test + M = bim3a_osc_advection_diffusion (msh, 1, x); + assert (norm (sum (M, 1), inf), 0, eps * 100) +***** test + M = bim3a_osc_advection_diffusion (msh, 1, y); + assert (norm (sum (M, 1), inf), 0, eps * 100) +***** test + M = bim3a_osc_advection_diffusion (msh, 1, z); + assert (norm (sum (M, 1), inf), 0, eps * 100) +***** demo + gmsh_input = [["Point(1) = {0, 0, 0, .1}; \n"], ... + ["Point(2) = {1, 0, 0, .1}; \n"], ... + ["Point(3) = {0, -.3, 0, .1}; \n"], ... + ["Point(4) = {0, +.3, 0, .1}; \n"], ... + ["Point(5) = {1, -.3, 0, .1}; \n"], ... + ["Point(6) = {1, 0.3, 0, .1}; \n"], ... + ["Point(7) = {0, 0, -.3, .1}; \n"], ... + ["Point(8) = {0, 0, +.3, .1}; \n"], ... + ["Point(9) = {1, 0, -.3, .1}; \n"], ... + ["Point(10) = {1, 0, 0.3, .1}; \n"], ... + ["Circle(1) = {4, 1, 7}; \n"], ... + ["Circle(2) = {7, 1, 3}; \n"], ... + ["Circle(3) = {3, 1, 8}; \n"], ... + ["Circle(4) = {8, 1, 4}; \n"], ... + ["Circle(5) = {6, 2, 9}; \n"], ... + ["Circle(6) = {9, 2, 5}; \n"], ... + ["Circle(7) = {5, 2, 10}; \n"], ... + ["Circle(8) = {10, 2, 6}; \n"], ... + ["Line(9) = {4, 6}; \n"], ... + ["Line(10) = {3, 5}; \n"], ... + ["Line(11) = {8, 10}; \n"], ... + ["Line(12) = {7, 9}; \n"], ... + ["Line Loop(13) = {4, 1, 2, 3}; \n"], ... + ["Plane Surface(14) = {13}; \n"], ... + ["Line Loop(15) = {5, 6, 7, 8}; \n"], ... + ["Plane Surface(16) = {15}; \n"], ... + ["Line Loop(17) = {9, -8, -11, 4}; \n"], ... + ["Ruled Surface(18) = {17}; \n"], ... + ["Line Loop(19) = {12, -5, -9, 1}; \n"], ... + ["Ruled Surface(20) = {19}; \n"], ... + ["Line Loop(21) = {12, 6, -10, -2}; \n"], ... + ["Ruled Surface(22) = {21}; \n"], ... + ["Line Loop(23) = {11, -7, -10, 3}; \n"], ... + ["Ruled Surface(24) = {23}; \n"], ... + ["Surface Loop(25) = {18, 20, 22, 16, 24, 14}; \n"], ... + ["Volume(26) = {25}; \n"]]; + fname = tmpnam (); + [fid, msg] = fopen (strcat (fname, ".geo"), "w"); + if (fid < 0); error (msg); endif + fputs (fid, gmsh_input); + fclose (fid); + msh = bim3c_mesh_properties (msh3m_gmsh (fname, "clscale", ".25")); + x = msh.p (1, :).'; + u = x; + bnd = bim3c_unknowns_on_faces (msh, [14, 16]); + int = setdiff (1:columns (msh.p), bnd); + Mosc = bim3a_osc_advection_diffusion (msh, 1, msh.p(1,:)'*0); + Mgal = bim3a_advection_diffusion (msh, 1, msh.p(1,:)'*0); + u(int) = Mosc(int, int) \ ( - Mosc(int, bnd) * u(bnd)); + uosc = u; + u(int) = Mgal(int, int) \ ( - Mgal(int, bnd) * u(bnd)); + ugal = u; + fname_out = tmpnam (); + printf ("saving results to %s \n", strcat (fname_out, ".vtu")); + fpl_vtk_raw_write_field (fname_out, msh, {uosc, "u_osc"; ugal, "u_galerkin"}, {}); + unlink (fname); +***** demo + gmsh_input = [["Point(1) = {0, 0, 0, .1}; \n"], ... + ["Point(2) = {1, 0, 0, .1}; \n"], ... + ["Point(3) = {0, -.3, 0, .1}; \n"], ... + ["Point(4) = {0, +.3, 0, .1}; \n"], ... + ["Point(5) = {1, -.3, 0, .1}; \n"], ... + ["Point(6) = {1, 0.3, 0, .1}; \n"], ... + ["Point(7) = {0, 0, -.3, .1}; \n"], ... + ["Point(8) = {0, 0, +.3, .1}; \n"], ... + ["Point(9) = {1, 0, -.3, .1}; \n"], ... + ["Point(10) = {1, 0, 0.3, .1}; \n"], ... + ["Circle(1) = {4, 1, 7}; \n"], ... + ["Circle(2) = {7, 1, 3}; \n"], ... + ["Circle(3) = {3, 1, 8}; \n"], ... + ["Circle(4) = {8, 1, 4}; \n"], ... + ["Circle(5) = {6, 2, 9}; \n"], ... + ["Circle(6) = {9, 2, 5}; \n"], ... + ["Circle(7) = {5, 2, 10}; \n"], ... + ["Circle(8) = {10, 2, 6}; \n"], ... + ["Line(9) = {4, 6}; \n"], ... + ["Line(10) = {3, 5}; \n"], ... + ["Line(11) = {8, 10}; \n"], ... + ["Line(12) = {7, 9}; \n"], ... + ["Line Loop(13) = {4, 1, 2, 3}; \n"], ... + ["Plane Surface(14) = {13}; \n"], ... + ["Line Loop(15) = {5, 6, 7, 8}; \n"], ... + ["Plane Surface(16) = {15}; \n"], ... + ["Line Loop(17) = {9, -8, -11, 4}; \n"], ... + ["Ruled Surface(18) = {17}; \n"], ... + ["Line Loop(19) = {12, -5, -9, 1}; \n"], ... + ["Ruled Surface(20) = {19}; \n"], ... + ["Line Loop(21) = {12, 6, -10, -2}; \n"], ... + ["Ruled Surface(22) = {21}; \n"], ... + ["Line Loop(23) = {11, -7, -10, 3}; \n"], ... + ["Ruled Surface(24) = {23}; \n"], ... + ["Surface Loop(25) = {18, 20, 22, 16, 24, 14}; \n"], ... + ["Volume(26) = {25}; \n"]]; + fname = tmpnam (); + [fid, msg] = fopen (strcat (fname, ".geo"), "w"); + if (fid < 0); error (msg); endif + fputs (fid, gmsh_input); + fclose (fid); + msh = bim3c_mesh_properties (msh3m_gmsh (fname, "clscale", ".25")); + x = msh.p (1, :).'; + u = x; + bnd = bim3c_unknowns_on_faces (msh, [14, 16]); + int = setdiff (1:columns (msh.p), bnd); + Mosc = bim3a_osc_advection_diffusion (msh, 1, msh.p(1,:)'*0); + Mgal = bim3a_advection_diffusion (msh, 1, msh.p(1,:)'*0); + f = bim3a_rhs (msh, 10, 1); + u(int) = Mosc(int, int) \ (f(int) - Mosc(int, bnd) * u(bnd)); + uosc = u; + u(int) = Mgal(int, int) \ (f(int) - Mgal(int, bnd) * u(bnd)); + ugal = u; + fname_out = tmpnam (); + printf ("saving results to %s \n", strcat (fname_out, ".vtu")); + fpl_vtk_raw_write_field (fname_out, msh, {uosc, "u_osc"; ugal, "u_galerkin"}, {}); + unlink (fname); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/bim1a_axisymmetric_rhs.m] +>>>>> /build/octave-bim-1.1.6/inst/bim1a_axisymmetric_rhs.m ***** test x = linspace(0,1,101); - A = bim1a_axisymmetric_reaction(x,1,1); + A = bim1a_axisymmetric_rhs(x,1,1); delta = ones(100,1); zeta = ones(101,1); - B = bim1a_axisymmetric_reaction(x,delta,zeta); + B = bim1a_axisymmetric_rhs(x,delta,zeta); assert(A,B) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim2a_rhs.m] ->>>>> /build/octave-bim-1.1.6/inst/bim2a_rhs.m -***** shared mesh,f,g,nnodes,nelem -***** test -***** test -***** test -3 tests, 3 passed, 0 known failure, 0 skipped +1 test, 1 passed, 0 known failure, 0 skipped [inst/bim2c_tri_to_nodes.m] >>>>> /build/octave-bim-1.1.6/inst/bim2c_tri_to_nodes.m ***** test @@ -4275,7 +4261,64 @@ bim2c_mesh_properties at line 44 column 40 __test__ at line 3 column 6 test at line 683 column 11 - /tmp/tmp.4XPpnH2cpj at line 262 column 31 + /tmp/tmp.S2pZGJNoj5 at line 238 column 31 + +1 test, 1 passed, 0 known failure, 0 skipped +[inst/bim1a_axisymmetric_advection_upwind.m] +>>>>> /build/octave-bim-1.1.6/inst/bim1a_axisymmetric_advection_upwind.m +***** test + nn = 20; + mesh = linspace(1,2,nn+1)'; + D = 1; v = 0; sigma = 0; + uex = @(r) exp(r); + duexdr = @(r) uex(r); + d2uexdr2 = @(r) uex(r); + f = @(r,z) -D./r.*duexdr(r) - D.*d2uexdr2(r) ... + + v./r .* uex(r) + v * duexdr(r) ... + + sigma * uex(r); + uex_left = uex(mesh(1)); uex_right = uex(mesh(end)); + Ar = bim1a_axisymmetric_laplacian (mesh, D, 1); + Adv = bim1a_axisymmetric_advection_upwind (mesh, v*ones(nn,1)); + R = bim1a_axisymmetric_reaction (mesh, sigma, 1); + M = Ar + Adv + R; + M(1,:) *= 0; M(1,1) = 1; + M(end,:) *= 0; M(end, end) = 1; + rhs = bim1a_axisymmetric_rhs (mesh, 1, f(mesh)); + rhs(1) = uex_left; rhs(end) = uex_right; + uh = M \ rhs; + assert(uh, uex(mesh), 1e-3); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/bim1c_elem_to_nodes.m] +>>>>> /build/octave-bim-1.1.6/inst/bim1c_elem_to_nodes.m +***** test + n = 10; msh = linspace (0, 1, n+1); + nel = n; + nnod = n+1; + u_el = randn (nel, 1); + un1 = bim1c_elem_to_nodes (msh, u_el); + [un2, m] = bim1c_elem_to_nodes (msh, u_el); + un3 = bim1c_elem_to_nodes (m, u_el); + [un4, m] = bim1c_elem_to_nodes (m, u_el); + assert (un1, un2, 1e-10) + assert (un1, un3, 1e-10) + assert (un1, un4, 1e-10) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/bim2c_intrp.m] +>>>>> /build/octave-bim-1.1.6/inst/bim2c_intrp.m +***** test + msh = bim2c_mesh_properties (msh2m_structured_mesh (linspace (0, 1, 11), linspace (0, 1, 13), 1, 1:4)); + x = y = linspace (0, 1, 100).'; + u = msh.p(1, :).'; + ui = bim2c_intrp (msh, u, [], [x, y]); + assert (ui, linspace (0, 1, 100), 10*eps); +warning: 'matrix' object indexed with empty index list +warning: called from + msh2m_geometrical_properties>computearea at line 406 column 7 + msh2m_geometrical_properties at line 167 column 13 + bim2c_mesh_properties at line 44 column 40 + __test__ at line 3 column 6 + test at line 683 column 11 + /tmp/tmp.S2pZGJNoj5 at line 262 column 31 1 test, 1 passed, 0 known failure, 0 skipped Checking C++ files ... @@ -4305,12 +4348,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/6275/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/6275/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/32080 and its subdirectories -I: Current time: Sun May 21 22:50:40 -12 2023 -I: pbuilder-time-stamp: 1684752640 +I: removing directory /srv/workspace/pbuilder/6275 and its subdirectories +I: Current time: Tue May 23 00:59:03 +14 2023 +I: pbuilder-time-stamp: 1684753143