File: dirichlet-hdg-post-error-gdat-make.sh

package info (click to toggle)
rheolef 7.1-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 77,392 kB
  • sloc: cpp: 105,337; sh: 16,014; makefile: 5,293; python: 1,359; xml: 221; yacc: 218; javascript: 202; awk: 61; sed: 5
file content (63 lines) | stat: -rw-r--r-- 3,031 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh
#
# This file is part of Rheolef.
#
# Copyright (C) 2000-2018 Pierre Saramito 
#
# Rheolef is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Rheolef is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Rheolef; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
# -------------------------------------------------------------------------
n=${1-"1"}
e=${2-"t"}
case $e in
 e)   kmax=5; L="3 4 8 16 32 64 128 256 512 1024";;
 t|q) kmax=3; L="1 2 4 8 16 32 64 128 256";;
 *)   kmax=3; L="5 10 20 40";;
esac
k=0
while test $k -le $kmax; do
  echo "# n = $n"
  echo "# P${k}d $e"
  echo "# 1/h err_u_l2 err_u_linf err_u_h1 err_lambda_l2 err_lambda_linf err_sigma_l2 err_sigma_linf err_sigmat_l2 err_sigmat_linf err_div_sigmat_l2 err_div_sigmat_linf"
  for m in $L; do
    command="mkgeo_grid -$e $m > tmp.geo"
    #echo "! $command" 1>&2
    eval $command
    command="./dirichlet_hdg tmp.geo P${k}d $n 2>/dev/null | ./dirichlet_hdg_post_rt 2>/dev/null | tee tmp.field | ./sinusprod_error_hdg_post_rt 2> tmp.txt >/dev/null"
    #echo "! $command" 1>&2
    eval $command
    command="./dirichlet_hdg_post < tmp.field 2>/dev/null | ./sinusprod_error_hdg 2>> tmp.txt >/dev/null"
    #echo "! $command" 1>&2
    eval $command
    err_u_l2=` grep err_u_l2 tmp.txt | gawk '{print $3}'`
    err_u_linf=` grep err_u_linf tmp.txt | gawk '{print $3}'`
    err_u_h1=` grep err_u_h1 tmp.txt | gawk '{print $3}'`
    err_lambda_l2=` grep err_lambda_l2 tmp.txt | gawk '{print $3}'`
    err_lambda_linf=` grep err_lambda_linf tmp.txt | gawk '{print $3}'`
    err_sigma_l2=` grep err_sigma_l2 tmp.txt | gawk '{print $3}'`
    err_sigma_linf=` grep err_sigma_linf tmp.txt | gawk '{print $3}'`
    err_sigmat_l2=` grep err_sigmat_l2 tmp.txt | gawk '{print $3}'`
    err_sigmat_linf=` grep err_sigmat_linf tmp.txt | gawk '{print $3}'`
    err_div_sigmat_l2=` grep err_div_sigmat_l2 tmp.txt | gawk '{print $3}'`
    err_div_sigmat_linf=` grep err_div_sigmat_linf tmp.txt | gawk '{print $3}'`
    # error for bi-valued lambda is not yet ready:
    if test "$err_lambda_l2"   = ""; then err_lambda_l2=nan; fi
    if test "$err_lambda_linf" = ""; then err_lambda_linf=nan; fi
    if test "$err_div_lambda_l2"   = ""; then err_div_lambda_l2=nan; fi
    if test "$err_div_lambda_linf" = ""; then err_div_lambda_linf=nan; fi
    echo "$m $err_u_l2 $err_u_linf $err_u_h1 $err_lambda_l2 $err_lambda_linf $err_sigma_l2 $err_sigma_linf $err_sigmat_l2 $err_sigmat_linf $err_div_sigmat_l2 $err_div_sigmat_linf"
  done
  echo; echo
  k=`expr $k + 1`
done