Diff of the two buildlogs: -- --- b1/build.log 2025-07-26 23:34:47.119818368 +0000 +++ b2/build.log 2025-07-26 23:44:00.860466696 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Aug 28 17:56:00 -12 2026 -I: pbuilder-time-stamp: 1787982960 +I: Current time: Sun Jul 27 13:34:53 +14 2025 +I: pbuilder-time-stamp: 1753572893 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/experimental-reproducible-base.tgz] I: copying local configuration @@ -25,52 +25,84 @@ 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/3632278/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/4084851/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-amd64. +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 Jul 26 23:35 /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/4084851/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/4084851/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' - DISTRIBUTION='experimental' - HOME='/root' - HOST_ARCH='amd64' + 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]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=40 ' + DIRSTACK=() + DISTRIBUTION=experimental + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='e0d19e90cdf345839683fdaad833a778' - 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='3632278' - PS1='# ' - PS2='> ' + INVOCATION_ID=9c1798c49c2940b186e44bfd59f6da25 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + 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=4084851 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.91caZSqw/pbuilderrc_JRws --distribution experimental --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/experimental-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.91caZSqw/b1 --logfile b1/build.log octave-bim_1.1.8-1.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152:3128' + 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.91caZSqw/pbuilderrc_mB8y --distribution experimental --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/experimental-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.91caZSqw/b2 --logfile b2/build.log octave-bim_1.1.8-1.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos15-amd64 6.12.33+deb12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.33-1~bpo12+1 (2025-07-09) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 May 12 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3632278/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 12 19:25 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/4084851/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -726,7 +758,7 @@ Get: 612 http://deb.debian.org/debian unstable/main amd64 gmsh amd64 4.13.1+ds1-6 [38.1 kB] Get: 613 http://deb.debian.org/debian unstable/main amd64 octave-splines all 1.3.5-2 [24.7 kB] Get: 614 http://deb.debian.org/debian unstable/main amd64 octave-msh all 1.0.12-1 [24.7 kB] -Fetched 322 MB in 14s (22.2 MB/s) +Fetched 322 MB in 21s (15.4 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:amd64. (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 ... 19850 files and directories currently installed.) @@ -2717,8 +2749,8 @@ Setting up tzdata (2025b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Aug 29 05:57:09 UTC 2026. -Universal Time is now: Sat Aug 29 05:57:09 UTC 2026. +Local time is now: Sat Jul 26 23:40:16 UTC 2025. +Universal Time is now: Sat Jul 26 23:40:16 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libxcb-present0:amd64 (1.17.0-2+b1) ... @@ -3249,7 +3281,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/octave-bim-1.1.8/ && 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.8-1_source.changes +I: user script /srv/workspace/pbuilder/4084851/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for experimental +I: user script /srv/workspace/pbuilder/4084851/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/octave-bim-1.1.8/ && 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.8-1_source.changes dpkg-buildpackage: info: source package octave-bim dpkg-buildpackage: info: source version 1.1.8-1 dpkg-buildpackage: info: source distribution experimental @@ -3289,6 +3325,46 @@ Checking package... Run the unit tests... Checking m files ... +[inst/bim3c_norm.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3c_norm.m +***** test +***** shared L, V, x, y, z, m + L = rand (1); V = rand (1); x = linspace (0,L,4); y = x; z = x; + m = msh3m_structured_mesh (x,y,z,1,1:6); + m.area = msh3m_geometrical_properties (m, 'area'); + m.shg = msh3m_geometrical_properties (m, 'shg'); + u = V * ones (columns(m.p),1); + uinf = bim3c_norm (m, u, 'inf'); + uL2 = bim3c_norm (m, u, 'L2'); + uH1 = bim3c_norm (m, u, 'H1'); + assert ([uinf, uL2, uH1], [V, V*sqrt(L^3), V*sqrt(L^3)], 1e-12); +***** test + u = V * (m.p(1,:) + 2*m.p(2,:) + 3*m.p(3,:))'; + uinf = bim3c_norm (m, u, 'inf'); + uL2 = bim3c_norm (m, u, 'L2'); + uH1 = bim3c_norm (m, u, 'H1'); + assert ([uinf, uL2, uH1], + [6*L*V, V*sqrt(61/6*L^5), V*sqrt(61/6*L^5 + 14*L^3)], + 1e-12); +***** test + u = V * ones (columns(m.t),1); + uinf = bim3c_norm (m, u, 'inf'); + uL2 = bim3c_norm (m, u, 'L2'); + assert ([uinf, uL2], [V, V*sqrt(L^3)], 1e-12); +***** test + u = V * ones (columns(m.t),1); + uvect = [u, 2*u, 3*u]; + uinf = bim3c_norm (m, uvect, 'inf'); + uL2 = bim3c_norm (m, uvect, 'L2'); + assert ([uinf, uL2], [3*V, V*sqrt(14*L^3)], 1e-12); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/bim2a_reaction.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_reaction.m +***** shared mesh,delta,zeta,nnodes,nelem +***** test +***** test +***** test +3 tests, 3 passed, 0 known failure, 0 skipped [inst/bim1a_axisymmetric_reaction.m] >>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim1a_axisymmetric_reaction.m ***** test @@ -3343,6 +3419,13 @@ B = bim1a_axisymmetric_reaction(x,delta,zeta); assert(A,B) 3 tests, 3 passed, 0 known failure, 0 skipped +[inst/bim3a_rhs.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3a_rhs.m +***** shared mesh,f,g,nnodes,nelem +***** test +***** test +***** test +3 tests, 3 passed, 0 known failure, 0 skipped [inst/bim1a_axisymmetric_rhs.m] >>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim1a_axisymmetric_rhs.m ***** test @@ -3353,571 +3436,40 @@ B = bim1a_axisymmetric_rhs(x,delta,zeta); assert(A,B) 1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim2c_mesh_properties.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2c_mesh_properties.m -***** shared mesh -***** test -***** test -***** test -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim2a_laplacian.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_laplacian.m -***** test - m = msh2m_structured_mesh (0:.1:5, 0:.1:1, 1, 1:4, 'random'); - m = bim2c_mesh_properties (m); - A = bim2a_laplacian (m, 1, 3); - dnodes = bim2c_unknowns_on_side (m, 1:4); - inodes = setdiff (1:columns(m.p), dnodes); - u = m.p(1,:)'; - u(inodes) = A(inodes, inodes) \ (-A(inodes, dnodes) * u(dnodes)); - assert (u, m.p(1,:)', sqrt(eps)) -***** demo - m = msh2m_structured_mesh (0:.1:2*pi, 0:.1:2*pi, 1, 1:4, 'random'); - m = bim2c_mesh_properties (m); - kappa = 2 + sin (m.p(1, :)'); - f = kappa .* cos (m.p(2, :)'); - uex = cos (m.p(2, :)'); - A = bim2a_laplacian (m, 3./(sum(1./kappa(m.t(1:3, :)), 1)), 1); - b = bim2a_rhs (m, 1, f); - dnodes = bim2c_unknowns_on_side (m, 1:4); - inodes = setdiff (1:columns(m.p), dnodes); - u = uex; - u(inodes) = A(inodes, inodes) \ (b(inodes)-A(inodes, dnodes) * u(dnodes)); - h = pdesurf (m.p, m.t, u) - figure - pdesurf (m.p, m.t, uex) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim2a_axisymmetric_advection_diffusion.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_axisymmetric_advection_diffusion.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); - Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); - Nnodes = columns(mesh.p); - Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - 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); - 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); - 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-7) -***** 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; - 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); - 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); - 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) -***** 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) .* 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; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = 1/D * mesh.p(1,:)'; - f = @(r,z) -D./r.*duexdr(r,z) - D.*d2uexdr2(r,z) ... - + 1./r .* uex(r,z) + duexdr(r,z) ... - - D.*d2uexdz2(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); - 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) -***** 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) .* 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; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = 1/D * 1/2*(mesh.p(1,:)').^2; - f = @(r,z) 1./r.*(1+r).*(r-D) .* 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); - 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) -***** test - n = 3; - [mesh] = msh2m_structured_mesh(linspace(-2,-1,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); - Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); - Nnodes = columns(mesh.p); - Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - 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); - rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(abs(mesh.p(1,:)), mesh.p(2,:))); - S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); u(Dnodes) = uex(abs(mesh.p(1,Dnodes)), mesh.p(2,Dnodes)); - u(Varnodes) = S(Varnodes,Varnodes)\(rhs(Varnodes) - S(Varnodes,Dnodes)*u(Dnodes)); - assert(u,uex(abs(mesh.p(1,:)), mesh.p(2,:))',1e-7) -***** test - n = 10; - [mesh] = msh2m_structured_mesh(linspace(-2,-1,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; - alpha = D*ones(Nelements,1); - gamma = ones(Nnodes,1); - eta = ones(Nnodes,1); - beta = 1/D * 1/2*(mesh.p(1,:)').^2; - f = @(r,z) 1./r.*(1+r).*(r-D) .* uex(r,z); - rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(abs(mesh.p(1,:)), mesh.p(2,:))); - S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); u(Dnodes) = uex(abs(mesh.p(1,Dnodes)), mesh.p(2,Dnodes)); - u(Varnodes) = S(Varnodes,Varnodes)\(rhs(Varnodes) - S(Varnodes,Dnodes)*u(Dnodes)); - assert(u,uex(abs(mesh.p(1,:)), mesh.p(2,:))',1e-3) -***** test - [mesh] = msh2m_structured_mesh([0:.1:1],[0:.1:1],1,1:4); - mesh = bim2c_mesh_properties(mesh); - x = mesh.p(1,:)'; y = mesh.p(2,:)'; - Dnodes = bim2c_unknowns_on_side(mesh,[1:4]); - Nnodes = columns(mesh.p); Nelements = columns(mesh.t); - alpha = ones(Nelements,1); eta=ones(Nnodes,1); - beta = 0; - gamma = ones(Nnodes,1); - A = bim2a_axisymmetric_advection_diffusion(mesh,1,1,1,0); - B = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); - assert(A,B) -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/bim1a_advection_upwind.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/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_reaction.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim1a_reaction.m +[inst/bim1a_rhs.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim1a_rhs.m ***** test x = linspace(0,1,101); - A = bim1a_reaction(x,1,1); + A = bim1a_rhs(x,1,1); delta = ones(100,1); zeta = ones(101,1); - B = bim1a_reaction(x,delta,zeta); - assert(A,B) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim3a_rhs.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3a_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/reproducible-path/octave-bim-1.1.8/inst/bim3a_laplacian.m -***** shared mesh,epsilon,kappa,nnodes,nelem -***** test -***** test -***** test -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim3c_mesh_properties.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3c_mesh_properties.m -***** shared mesh -***** test -***** test -***** test -***** test -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/bim2a_axisymmetric_rhs.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_axisymmetric_rhs.m -***** shared mesh,f,g,nnodes,nelem -***** test -***** test -***** test -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim3c_norm.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3c_norm.m -***** test -***** shared L, V, x, y, z, m - L = rand (1); V = rand (1); x = linspace (0,L,4); y = x; z = x; - m = msh3m_structured_mesh (x,y,z,1,1:6); - m.area = msh3m_geometrical_properties (m, 'area'); - m.shg = msh3m_geometrical_properties (m, 'shg'); - u = V * ones (columns(m.p),1); - uinf = bim3c_norm (m, u, 'inf'); - uL2 = bim3c_norm (m, u, 'L2'); - uH1 = bim3c_norm (m, u, 'H1'); - assert ([uinf, uL2, uH1], [V, V*sqrt(L^3), V*sqrt(L^3)], 1e-12); -***** test - u = V * (m.p(1,:) + 2*m.p(2,:) + 3*m.p(3,:))'; - uinf = bim3c_norm (m, u, 'inf'); - uL2 = bim3c_norm (m, u, 'L2'); - uH1 = bim3c_norm (m, u, 'H1'); - assert ([uinf, uL2, uH1], - [6*L*V, V*sqrt(61/6*L^5), V*sqrt(61/6*L^5 + 14*L^3)], - 1e-12); -***** test - u = V * ones (columns(m.t),1); - uinf = bim3c_norm (m, u, 'inf'); - uL2 = bim3c_norm (m, u, 'L2'); - assert ([uinf, uL2], [V, V*sqrt(L^3)], 1e-12); -***** test - u = V * ones (columns(m.t),1); - uvect = [u, 2*u, 3*u]; - uinf = bim3c_norm (m, uvect, 'inf'); - uL2 = bim3c_norm (m, uvect, 'L2'); - assert ([uinf, uL2], [3*V, V*sqrt(14*L^3)], 1e-12); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/bim1c_norm.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/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)], sqrt(eps)); -***** 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/reproducible-path/octave-bim-1.1.8/inst/bim2a_advection_diffusion.m -***** test - [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); - mesh = bim2c_mesh_properties(mesh); - x = mesh.p(1,:)'; - Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); - Nnodes = columns(mesh.p); - Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - alpha = ones(Nelements,1); - eta = .1*ones(Nnodes,1); - beta = [ones(1,Nelements);zeros(1,Nelements)]; - gamma = ones(Nnodes,1); - f = bim2a_rhs(mesh,ones(Nelements,1),ones(Nnodes,1)); - S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); - u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); - uex = x - (exp(10*x)-1)/(exp(10)-1); - assert(u,uex,1e-7) -***** test - [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); - mesh = bim2c_mesh_properties(mesh); - x = mesh.p(1,:)'; - Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); - Nnodes = columns(mesh.p); Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - alpha = ones(Nelements,1); - eta = .1*ones(Nnodes,1); - beta = x; - gamma = ones(Nnodes,1); - f = bim2a_rhs(mesh,ones(Nelements,1),ones(Nnodes,1)); - S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); - u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); - uex = x - (exp(10*x)-1)/(exp(10)-1); - assert(u,uex,1e-7) -***** test - [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); - mesh = bim2c_mesh_properties(mesh); - x = mesh.p(1,:)'; - Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); - Nnodes = columns(mesh.p); Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - alpha = 10*ones(Nelements,1); - eta = .01*ones(Nnodes,1); - beta = x/10; - gamma = ones(Nnodes,1); - f = bim2a_rhs(mesh,ones(Nelements,1),ones(Nnodes,1)); - S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); - u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); - uex = x - (exp(10*x)-1)/(exp(10)-1); - assert(u,uex,1e-7) -***** test - [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); - mesh = bim2c_mesh_properties(mesh); - x = mesh.p(1,:)'; - Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); - Nnodes = columns(mesh.p); Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - alpha = 10*ones(Nelements,1); eta = .001*ones(Nnodes,1); - beta = x/100; - gamma = 10*ones(Nnodes,1); - f = bim2a_rhs(mesh,ones(Nelements,1),ones(Nnodes,1)); - S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); - u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); - uex = x - (exp(10*x)-1)/(exp(10)-1); - assert(u,uex,1e-7) -***** test - [mesh] = msh2m_structured_mesh([0:1/1e3:1],[0:1/2:1],1,1:4); - mesh = bim2c_mesh_properties(mesh); - x = mesh.p(1,:)'; - Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); - Nnodes = columns(mesh.p); Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - alpha = 3*ones(Nelements,1); eta = x+1; - beta = [ones(1,Nelements);zeros(1,Nelements)]; - gamma = 2*x; - ff = 2*(6*x.^2+6*x) - (6*x+6).*(1-2*x)+6*(x-x.^2); - f = bim2a_rhs(mesh,ones(Nelements,1),ff); - S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); - u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); - uex = x - x.^2; - assert(u,uex,5e-3) -***** test - [mesh] = msh2m_structured_mesh([0:1/1e3:1],[0:1/2:1],1,1:4); - mesh = bim2c_mesh_properties(mesh); - x = mesh.p(1,:)'; - Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); - Nnodes = columns(mesh.p); Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - alpha = ones(Nelements,1); eta = ones(Nnodes,1); - beta = 0; - gamma = x+1; - ff = 4*x+1; - f = bim2a_rhs(mesh,ones(Nelements,1),ff); - S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); - u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); - uex = x - x.^2; - assert(u,uex,1e-7) -***** test - [mesh] = msh2m_structured_mesh([0:.1:1],[0:.1:1],1,1:4); - mesh = bim2c_mesh_properties(mesh); - x = mesh.p(1,:)';y = mesh.p(2,:)'; - Dnodes = bim2c_unknowns_on_side(mesh,[1:4]); - Nnodes = columns(mesh.p); Nelements = columns(mesh.t); - Varnodes = setdiff(1:Nnodes,Dnodes); - alpha = ones(Nelements,1); diff = 1e-2; eta=diff*ones(Nnodes,1); - beta =[ones(1,Nelements);ones(1,Nelements)]; - gamma = x*0+1; - ux = y.*(1-exp((y-1)/diff)) .* (1-exp((x-1)/diff)-x.*exp((x-1)/diff)/diff); - uy = x.*(1-exp((x-1)/diff)) .* (1-exp((y-1)/diff)-y.*exp((y-1)/diff)/diff); - uxx = y.*(1-exp((y-1)/diff)) .* (-2*exp((x-1)/diff)/diff-x.*exp((x-1)/diff)/(diff^2)); - uyy = x.*(1-exp((x-1)/diff)) .* (-2*exp((y-1)/diff)/diff-y.*exp((y-1)/diff)/(diff^2)); - ff = -diff*(uxx+uyy)+ux+uy; - f = bim2a_rhs(mesh,ones(Nelements,1),ff); - S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); - u = zeros(Nnodes,1); - u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); - uex = x.*y.*(1-exp((x-1)/diff)).*(1-exp((y-1)/diff)); - assert(u,uex,1e-7) -***** test - [mesh] = msh2m_structured_mesh([0:.1:1],[0:.1:1],1,1:4); - mesh = bim2c_mesh_properties(mesh); - x = mesh.p(1,:)'; y = mesh.p(2,:)'; - Dnodes = bim2c_unknowns_on_side(mesh,[1:4]); - Nnodes = columns(mesh.p); Nelements = columns(mesh.t); - alpha = ones(Nelements,1); eta=ones(Nnodes,1); - beta = 0; - gamma = ones(Nnodes,1); - A = bim2a_advection_diffusion(mesh,1,1,1,0); - B = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); + B = bim1a_rhs(x,delta,zeta); assert(A,B) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/bim2a_reaction.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_reaction.m -***** shared mesh,delta,zeta,nnodes,nelem -***** test -***** test -***** test -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim3c_intrp.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/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/bim2c_norm.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2c_norm.m -***** test -***** shared L, V, x, y, m - L = rand (1); V = rand (1); x = linspace (0,L,4); y = x; - m = msh2m_structured_mesh (x,y,1,1:4); - m.area = msh2m_geometrical_properties (m, 'area'); - m.shg = msh2m_geometrical_properties (m, 'shg'); - u = V * ones (columns(m.p),1); - uinf = bim2c_norm (m, u, 'inf'); - uL2 = bim2c_norm (m, u, 'L2'); - uH1 = bim2c_norm (m, u, 'H1'); - assert ([uinf, uL2, uH1], [V, V*L, V*L], 1e-12); -***** test - u = V * (m.p(1,:) + 2*m.p(2,:))'; - uinf = bim2c_norm (m, u, 'inf'); - uL2 = bim2c_norm (m, u, 'L2'); - uH1 = bim2c_norm (m, u, 'H1'); - assert ([uinf, uL2, uH1], - [3*L*V, V*L^2*sqrt(8/3), V*sqrt(8/3*L^4 + 5*L^2)], - 1e-12); -***** test - u = V * ones (columns(m.t),1); - uinf = bim2c_norm (m, u, 'inf'); - uL2 = bim2c_norm (m, u, 'L2'); - assert ([uinf, uL2], [V, V*L], 1e-12); -***** test - u = V * ones (columns(m.t),1); - uvect = [u, 2*u]; - uinf = bim2c_norm (m, uvect, 'inf'); - 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/bim2a_axisymmetric_reaction.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/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; - 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) -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/bim1a_advection_diffusion.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim1a_advection_diffusion.m +[inst/bim1a_axisymmetric_advection_upwind.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim1a_axisymmetric_advection_upwind.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) + 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/bim2a_rhs.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_rhs.m -***** shared mesh,f,g,nnodes,nelem -***** test -***** test -***** test -3 tests, 3 passed, 0 known failure, 0 skipped [inst/bim3a_osc_laplacian.m] >>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3a_osc_laplacian.m ***** shared msh, epsilon, M, nnodes, nelem, x, y, z @@ -3951,84 +3503,6 @@ 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/bim3a_reaction.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3a_reaction.m -***** shared mesh,delta,zeta,nnodes,nelem -***** test -***** test -***** test -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/bim1a_axisymmetric_advection_upwind.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/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/bim3c_global_flux.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/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/bim1a_rhs.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/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/bim3c_tri_to_nodes.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3c_tri_to_nodes.m -***** test - msh = bim3c_mesh_properties (msh3m_structured_mesh (linspace (0, 1, 31), linspace (0, 1, 13), linspace (0, 1, 13), 1, 1:6)); - nel = columns (msh.t); - nnod = columns (msh.p); - u_tri = randn (nel, 1); - un1 = bim3c_tri_to_nodes (msh, u_tri); - [un2, m] = bim3c_tri_to_nodes (msh, u_tri); - assert (un1, un2, 1e-10) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim2c_intrp.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/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); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bim3c_unknowns_on_faces.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3c_unknowns_on_faces.m -***** shared mesh -***** test -***** test -***** test -3 tests, 3 passed, 0 known failure, 0 skipped [inst/bim1a_axisymmetric_advection_diffusion.m] >>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim1a_axisymmetric_advection_diffusion.m ***** test @@ -4096,97 +3570,76 @@ B = bim1a_axisymmetric_advection_diffusion(x,alpha,gamma,eta,0); assert(A,B) 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/bim1c_elem_to_nodes.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim1c_elem_to_nodes.m +[inst/bim1a_reaction.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim1a_reaction.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); + x = linspace(0,1,101); + A = bim1a_reaction(x,1,1); + delta = ones(100,1); + zeta = ones(101,1); + B = bim1a_reaction(x,delta,zeta); + assert(A,B) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/bim2c_intrp.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/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); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/bim2c_norm.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2c_norm.m +***** test +***** shared L, V, x, y, m + L = rand (1); V = rand (1); x = linspace (0,L,4); y = x; + m = msh2m_structured_mesh (x,y,1,1:4); + m.area = msh2m_geometrical_properties (m, 'area'); + m.shg = msh2m_geometrical_properties (m, 'shg'); + u = V * ones (columns(m.p),1); + uinf = bim2c_norm (m, u, 'inf'); + uL2 = bim2c_norm (m, u, 'L2'); + uH1 = bim2c_norm (m, u, 'H1'); + assert ([uinf, uL2, uH1], [V, V*L, V*L], 1e-12); +***** test + u = V * (m.p(1,:) + 2*m.p(2,:))'; + uinf = bim2c_norm (m, u, 'inf'); + uL2 = bim2c_norm (m, u, 'L2'); + uH1 = bim2c_norm (m, u, 'H1'); + assert ([uinf, uL2, uH1], + [3*L*V, V*L^2*sqrt(8/3), V*sqrt(8/3*L^4 + 5*L^2)], + 1e-12); +***** test + u = V * ones (columns(m.t),1); + uinf = bim2c_norm (m, u, 'inf'); + uL2 = bim2c_norm (m, u, 'L2'); + assert ([uinf, uL2], [V, V*L], 1e-12); +***** test + u = V * ones (columns(m.t),1); + uvect = [u, 2*u]; + uinf = bim2c_norm (m, uvect, 'inf'); + 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/bim3c_tri_to_nodes.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3c_tri_to_nodes.m +***** test + msh = bim3c_mesh_properties (msh3m_structured_mesh (linspace (0, 1, 31), linspace (0, 1, 13), linspace (0, 1, 13), 1, 1:6)); + nel = columns (msh.t); + nnod = columns (msh.p); + u_tri = randn (nel, 1); + un1 = bim3c_tri_to_nodes (msh, u_tri); + [un2, m] = bim3c_tri_to_nodes (msh, u_tri); 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/bim2a_axisymmetric_boundary_mass.m] ->>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_axisymmetric_boundary_mass.m +[inst/bim2a_rhs.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_rhs.m +***** shared mesh,f,g,nnodes,nelem ***** 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) ***** 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) -2 tests, 2 passed, 0 known failure, 0 skipped +***** test +3 tests, 3 passed, 0 known failure, 0 skipped [inst/bim3a_osc_advection_diffusion.m] >>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3a_osc_advection_diffusion.m ***** shared msh, epsilon, M, nnodes, nelem, x, y, z @@ -4344,6 +3797,86 @@ 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/bim2a_axisymmetric_reaction.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/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; + 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) +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/bim3a_laplacian.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3a_laplacian.m +***** shared mesh,epsilon,kappa,nnodes,nelem +***** test +***** test +***** test +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/bim3c_mesh_properties.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3c_mesh_properties.m +***** shared mesh +***** test +***** test +***** test +***** test +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/bim2a_laplacian.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_laplacian.m +***** test + m = msh2m_structured_mesh (0:.1:5, 0:.1:1, 1, 1:4, 'random'); + m = bim2c_mesh_properties (m); + A = bim2a_laplacian (m, 1, 3); + dnodes = bim2c_unknowns_on_side (m, 1:4); + inodes = setdiff (1:columns(m.p), dnodes); + u = m.p(1,:)'; + u(inodes) = A(inodes, inodes) \ (-A(inodes, dnodes) * u(dnodes)); + assert (u, m.p(1,:)', sqrt(eps)) +***** demo + m = msh2m_structured_mesh (0:.1:2*pi, 0:.1:2*pi, 1, 1:4, 'random'); + m = bim2c_mesh_properties (m); + kappa = 2 + sin (m.p(1, :)'); + f = kappa .* cos (m.p(2, :)'); + uex = cos (m.p(2, :)'); + A = bim2a_laplacian (m, 3./(sum(1./kappa(m.t(1:3, :)), 1)), 1); + b = bim2a_rhs (m, 1, f); + dnodes = bim2c_unknowns_on_side (m, 1:4); + inodes = setdiff (1:columns(m.p), dnodes); + u = uex; + u(inodes) = A(inodes, inodes) \ (b(inodes)-A(inodes, dnodes) * u(dnodes)); + h = pdesurf (m.p, m.t, u) + figure + pdesurf (m.p, m.t, uex) +1 test, 1 passed, 0 known failure, 0 skipped [inst/bim2c_tri_to_nodes.m] >>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2c_tri_to_nodes.m ***** test @@ -4355,6 +3888,509 @@ [un2, m] = bim2c_tri_to_nodes (msh, u_tri); assert (un1, un2, 1e-10) 1 test, 1 passed, 0 known failure, 0 skipped +[inst/bim1c_norm.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/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)], sqrt(eps)); +***** 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/bim1c_elem_to_nodes.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/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/bim2a_axisymmetric_boundary_mass.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/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) +***** 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) +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/bim3c_intrp.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/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_diffusion.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/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/bim3c_unknowns_on_faces.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3c_unknowns_on_faces.m +***** shared mesh +***** test +***** test +***** test +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/bim3c_global_flux.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/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_rhs.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_axisymmetric_rhs.m +***** shared mesh,f,g,nnodes,nelem +***** test +***** test +***** test +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/bim2a_advection_diffusion.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_advection_diffusion.m +***** test + [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); + mesh = bim2c_mesh_properties(mesh); + x = mesh.p(1,:)'; + Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); + Nnodes = columns(mesh.p); + Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + alpha = ones(Nelements,1); + eta = .1*ones(Nnodes,1); + beta = [ones(1,Nelements);zeros(1,Nelements)]; + gamma = ones(Nnodes,1); + f = bim2a_rhs(mesh,ones(Nelements,1),ones(Nnodes,1)); + S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); + u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); + uex = x - (exp(10*x)-1)/(exp(10)-1); + assert(u,uex,1e-7) +***** test + [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); + mesh = bim2c_mesh_properties(mesh); + x = mesh.p(1,:)'; + Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); + Nnodes = columns(mesh.p); Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + alpha = ones(Nelements,1); + eta = .1*ones(Nnodes,1); + beta = x; + gamma = ones(Nnodes,1); + f = bim2a_rhs(mesh,ones(Nelements,1),ones(Nnodes,1)); + S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); + u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); + uex = x - (exp(10*x)-1)/(exp(10)-1); + assert(u,uex,1e-7) +***** test + [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); + mesh = bim2c_mesh_properties(mesh); + x = mesh.p(1,:)'; + Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); + Nnodes = columns(mesh.p); Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + alpha = 10*ones(Nelements,1); + eta = .01*ones(Nnodes,1); + beta = x/10; + gamma = ones(Nnodes,1); + f = bim2a_rhs(mesh,ones(Nelements,1),ones(Nnodes,1)); + S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); + u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); + uex = x - (exp(10*x)-1)/(exp(10)-1); + assert(u,uex,1e-7) +***** test + [mesh] = msh2m_structured_mesh([0:1/3:1],[0:1/3:1],1,1:4); + mesh = bim2c_mesh_properties(mesh); + x = mesh.p(1,:)'; + Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); + Nnodes = columns(mesh.p); Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + alpha = 10*ones(Nelements,1); eta = .001*ones(Nnodes,1); + beta = x/100; + gamma = 10*ones(Nnodes,1); + f = bim2a_rhs(mesh,ones(Nelements,1),ones(Nnodes,1)); + S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); + u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); + uex = x - (exp(10*x)-1)/(exp(10)-1); + assert(u,uex,1e-7) +***** test + [mesh] = msh2m_structured_mesh([0:1/1e3:1],[0:1/2:1],1,1:4); + mesh = bim2c_mesh_properties(mesh); + x = mesh.p(1,:)'; + Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); + Nnodes = columns(mesh.p); Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + alpha = 3*ones(Nelements,1); eta = x+1; + beta = [ones(1,Nelements);zeros(1,Nelements)]; + gamma = 2*x; + ff = 2*(6*x.^2+6*x) - (6*x+6).*(1-2*x)+6*(x-x.^2); + f = bim2a_rhs(mesh,ones(Nelements,1),ff); + S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); + u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); + uex = x - x.^2; + assert(u,uex,5e-3) +***** test + [mesh] = msh2m_structured_mesh([0:1/1e3:1],[0:1/2:1],1,1:4); + mesh = bim2c_mesh_properties(mesh); + x = mesh.p(1,:)'; + Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); + Nnodes = columns(mesh.p); Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + alpha = ones(Nelements,1); eta = ones(Nnodes,1); + beta = 0; + gamma = x+1; + ff = 4*x+1; + f = bim2a_rhs(mesh,ones(Nelements,1),ff); + S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); + u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); + uex = x - x.^2; + assert(u,uex,1e-7) +***** test + [mesh] = msh2m_structured_mesh([0:.1:1],[0:.1:1],1,1:4); + mesh = bim2c_mesh_properties(mesh); + x = mesh.p(1,:)';y = mesh.p(2,:)'; + Dnodes = bim2c_unknowns_on_side(mesh,[1:4]); + Nnodes = columns(mesh.p); Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + alpha = ones(Nelements,1); diff = 1e-2; eta=diff*ones(Nnodes,1); + beta =[ones(1,Nelements);ones(1,Nelements)]; + gamma = x*0+1; + ux = y.*(1-exp((y-1)/diff)) .* (1-exp((x-1)/diff)-x.*exp((x-1)/diff)/diff); + uy = x.*(1-exp((x-1)/diff)) .* (1-exp((y-1)/diff)-y.*exp((y-1)/diff)/diff); + uxx = y.*(1-exp((y-1)/diff)) .* (-2*exp((x-1)/diff)/diff-x.*exp((x-1)/diff)/(diff^2)); + uyy = x.*(1-exp((x-1)/diff)) .* (-2*exp((y-1)/diff)/diff-y.*exp((y-1)/diff)/(diff^2)); + ff = -diff*(uxx+uyy)+ux+uy; + f = bim2a_rhs(mesh,ones(Nelements,1),ff); + S = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); + u(Varnodes) = S(Varnodes,Varnodes)\f(Varnodes); + uex = x.*y.*(1-exp((x-1)/diff)).*(1-exp((y-1)/diff)); + assert(u,uex,1e-7) +***** test + [mesh] = msh2m_structured_mesh([0:.1:1],[0:.1:1],1,1:4); + mesh = bim2c_mesh_properties(mesh); + x = mesh.p(1,:)'; y = mesh.p(2,:)'; + Dnodes = bim2c_unknowns_on_side(mesh,[1:4]); + Nnodes = columns(mesh.p); Nelements = columns(mesh.t); + alpha = ones(Nelements,1); eta=ones(Nnodes,1); + beta = 0; + gamma = ones(Nnodes,1); + A = bim2a_advection_diffusion(mesh,1,1,1,0); + B = bim2a_advection_diffusion(mesh,alpha,gamma,eta,beta); + assert(A,B) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/bim1a_advection_upwind.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/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/bim2a_axisymmetric_advection_diffusion.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2a_axisymmetric_advection_diffusion.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); + Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); + Nnodes = columns(mesh.p); + Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + 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); + 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); + 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-7) +***** 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; + 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); + 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); + 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) +***** 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) .* 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; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + beta = 1/D * mesh.p(1,:)'; + f = @(r,z) -D./r.*duexdr(r,z) - D.*d2uexdr2(r,z) ... + + 1./r .* uex(r,z) + duexdr(r,z) ... + - D.*d2uexdz2(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); + 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) +***** 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) .* 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; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + beta = 1/D * 1/2*(mesh.p(1,:)').^2; + f = @(r,z) 1./r.*(1+r).*(r-D) .* 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); + 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) +***** test + n = 3; + [mesh] = msh2m_structured_mesh(linspace(-2,-1,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); + Dnodes = bim2c_unknowns_on_side(mesh,[2,4]); + Nnodes = columns(mesh.p); + Nelements = columns(mesh.t); + Varnodes = setdiff(1:Nnodes,Dnodes); + 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); + rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(abs(mesh.p(1,:)), mesh.p(2,:))); + S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); u(Dnodes) = uex(abs(mesh.p(1,Dnodes)), mesh.p(2,Dnodes)); + u(Varnodes) = S(Varnodes,Varnodes)\(rhs(Varnodes) - S(Varnodes,Dnodes)*u(Dnodes)); + assert(u,uex(abs(mesh.p(1,:)), mesh.p(2,:))',1e-7) +***** test + n = 10; + [mesh] = msh2m_structured_mesh(linspace(-2,-1,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; + alpha = D*ones(Nelements,1); + gamma = ones(Nnodes,1); + eta = ones(Nnodes,1); + beta = 1/D * 1/2*(mesh.p(1,:)').^2; + f = @(r,z) 1./r.*(1+r).*(r-D) .* uex(r,z); + rhs = bim2a_axisymmetric_rhs(mesh, ones(Nelements,1), f(abs(mesh.p(1,:)), mesh.p(2,:))); + S = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + u = zeros(Nnodes,1); u(Dnodes) = uex(abs(mesh.p(1,Dnodes)), mesh.p(2,Dnodes)); + u(Varnodes) = S(Varnodes,Varnodes)\(rhs(Varnodes) - S(Varnodes,Dnodes)*u(Dnodes)); + assert(u,uex(abs(mesh.p(1,:)), mesh.p(2,:))',1e-3) +***** test + [mesh] = msh2m_structured_mesh([0:.1:1],[0:.1:1],1,1:4); + mesh = bim2c_mesh_properties(mesh); + x = mesh.p(1,:)'; y = mesh.p(2,:)'; + Dnodes = bim2c_unknowns_on_side(mesh,[1:4]); + Nnodes = columns(mesh.p); Nelements = columns(mesh.t); + alpha = ones(Nelements,1); eta=ones(Nnodes,1); + beta = 0; + gamma = ones(Nnodes,1); + A = bim2a_axisymmetric_advection_diffusion(mesh,1,1,1,0); + B = bim2a_axisymmetric_advection_diffusion(mesh,alpha,gamma,eta,beta); + assert(A,B) +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/bim3a_reaction.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim3a_reaction.m +***** shared mesh,delta,zeta,nnodes,nelem +***** test +***** test +***** test +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/bim2c_mesh_properties.m] +>>>>> /build/reproducible-path/octave-bim-1.1.8/inst/bim2c_mesh_properties.m +***** shared mesh +***** test +***** test +***** test +3 tests, 3 passed, 0 known failure, 0 skipped Checking C++ files ... Done running the unit tests. Summary: 93 tests, 93 passed, 0 known failures, 0 skipped @@ -4387,12 +4423,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/4084851/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/4084851/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/3632278 and its subdirectories -I: Current time: Fri Aug 28 17:57:43 -12 2026 -I: pbuilder-time-stamp: 1787983063 +I: removing directory /srv/workspace/pbuilder/4084851 and its subdirectories +I: Current time: Sun Jul 27 13:44:00 +14 2025 +I: pbuilder-time-stamp: 1753573440