From: guido Date: Tue, 13 Jun 2000 20:43:34 +0000 (+0000) Subject: tests for FullMatrix X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=583da035cd966e997d27379327a09b0a9e85dbff;p=dealii-svn.git tests for FullMatrix git-svn-id: https://svn.dealii.org/trunk@3010 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/tests/lac/Makefile.in b/tests/lac/Makefile.in index c76f42b6a6..9285c006f8 100644 --- a/tests/lac/Makefile.in +++ b/tests/lac/Makefile.in @@ -60,7 +60,7 @@ endif @echo =====optimized===== $< @$(CXX) $(flags) -c $< -o $@ -all: solver.check mgbase.check mg.check +all: full_matrix.check solver.check mgbase.check mg.check exe: $(all:.check=.testcase) benchmark run: $(all:.check=.output) @@ -193,8 +193,20 @@ target1: $(target1-o-files) $(libraries) ############################################################ clean: - rm -f Make.depend *.o *.go *.output T + rm -f Makefile.depend *.o *.go *.output T veryclean: clean rm -f *.testcase *.inp *.gpl *.eps *.gnuplot +############################################################ +# Automatic generation of dependencies +############################################################ + +all-cc-files = $(shell echo *.cc) + +Makefile.depend: $(all-cc-files) + @echo =====Dependencies== Makefile.depend + @$(CXX) $(flags) $^ -M > $@ + @perl -pi~ -e 's/(^[^.]+)\.o:/\1.o \1.g.o:/;' $@ + +include Makefile.depend diff --git a/tests/lac/full_matrix.cc b/tests/lac/full_matrix.cc index 441ea4f6e3..3aa2f3f1fc 100644 --- a/tests/lac/full_matrix.cc +++ b/tests/lac/full_matrix.cc @@ -24,6 +24,12 @@ int main () { + ofstream logfile("full_matrix.output"); + logfile.setf(ios::fixed); + logfile.precision(3); + deallog.attach(logfile); + deallog.depth_console(0); + FullMatrix A(5,5), C(5,5), D(5,5), H(5,5); D(0,0) = 1.; D(1,1) = 2.; @@ -42,34 +48,65 @@ main () C(i+1,i) = sin(i+1); C(i,i+1) = -sin(i+1); + C.print_formatted (logfile); + deallog << "l1-norm: " << C.l1_norm() << endl; + D = C; + D.gauss_jordan(); + D.print_formatted (logfile); + deallog << "linfty-norm: " << D.linfty_norm() << endl + << "Frobenius-norm: " << D.norm2() << endl; + // Rotate original matrix A.mmult(H,C); C.Tmmult(A,H); } - A.print_formatted (cout); + A.print_formatted (logfile); Vector u(5); GrowingVectorMemory > mem; SolverControl control (500,1.e-8, false, true); - { - u = 1.; - EigenPower > - von_Mises(control, mem, 0.); - double eigen = 0.; - von_Mises.solve(eigen, A, u); - deallog << "Eigenvalue: " << eigen << endl; - } - { - u = 1.; - EigenPower > - von_Mises(control, mem, -4.); - double eigen = 0.; - von_Mises.solve(eigen, A, u); - deallog << "Eigenvalue: " << eigen << endl; - } + if (true) + { + u = 1.; + EigenPower > + von_Mises(control, mem, 0.); + double eigen = 0.; + von_Mises.solve(eigen, A, u); + deallog << "Eigenvalue: " << eigen << endl; + } + if (true) + { + u = 1.; + EigenPower > + von_Mises(control, mem, -4.); + double eigen = 0.; + von_Mises.solve(eigen, A, u); + deallog << "Eigenvalue: " << eigen << endl; + } + H = A; + H.gauss_jordan(); + H.print_formatted (logfile); + if (true) + { + u = 1.; + EigenPower > + von_Mises(control, mem, 0.); + double eigen = 0.; + von_Mises.solve(eigen, H, u); + deallog << "Eigenvalue: " << eigen << endl; + } + if (true) + { + u = 1.; + EigenPower > + von_Mises(control, mem, -4.); + double eigen = 0.; + von_Mises.solve(eigen, H, u); + deallog << "Eigenvalue: " << eigen << endl; + } } diff --git a/tests/lac/full_matrix.checked b/tests/lac/full_matrix.checked new file mode 100644 index 0000000000..ed69c27f66 --- /dev/null +++ b/tests/lac/full_matrix.checked @@ -0,0 +1,77 @@ + +5.403e-01 -8.415e-01 +8.415e-01 5.403e-01 + 1.000e+00 + 1.000e+00 + 1.000e+00 +DEAL::l1-norm: 1.38 +5.403e-01 8.415e-01 +-8.415e-01 5.403e-01 + 1.000e+00 + 1.000e+00 + 1.000e+00 +DEAL::linfty-norm: 1.38 +DEAL::Frobenius-norm: 5.00 +1.000e+00 + -4.161e-01 -9.093e-01 + 9.093e-01 -4.161e-01 + 1.000e+00 + 1.000e+00 +DEAL::l1-norm: 1.33 +1.000e+00 + -4.161e-01 9.093e-01 + -9.093e-01 -4.161e-01 + 1.000e+00 + 1.000e+00 +DEAL::linfty-norm: 1.33 +DEAL::Frobenius-norm: 5.00 +1.000e+00 + 1.000e+00 + -9.900e-01 -1.411e-01 + 1.411e-01 -9.900e-01 + 1.000e+00 +DEAL::l1-norm: 1.13 +1.000e+00 + 1.000e+00 + -9.900e-01 1.411e-01 + -1.411e-01 -9.900e-01 + 1.000e+00 +DEAL::linfty-norm: 1.13 +DEAL::Frobenius-norm: 5.00 +1.000e+00 + 1.000e+00 + 1.000e+00 + -6.536e-01 7.568e-01 + -7.568e-01 -6.536e-01 +DEAL::l1-norm: 1.41 +1.000e+00 + 1.000e+00 + 1.000e+00 + -6.536e-01 -7.568e-01 + 7.568e-01 -6.536e-01 +DEAL::linfty-norm: 1.41 +DEAL::Frobenius-norm: 5.00 +1.708e+00 -1.892e-01 4.093e-01 -3.813e-02 4.415e-02 +-1.892e-01 2.704e+00 6.399e-01 -5.962e-02 6.903e-02 +4.093e-01 6.399e-01 1.636e+00 2.203e-01 -2.551e-01 +-3.813e-02 -5.962e-02 2.203e-01 4.552e+00 5.184e-01 +4.415e-02 6.903e-02 -2.551e-01 5.184e-01 4.400e+00 +DEAL:Power method::Starting +DEAL:Power method::Convergence step 21 +DEAL::Eigen +DEAL:Power method::Starting +DEAL:Power method::Convergence step 27 +DEAL::Eigen +6.460e-01 9.460e-02 -2.046e-01 1.907e-02 -2.208e-02 +9.460e-02 4.235e-01 -1.951e-01 1.817e-02 -2.104e-02 +-2.046e-01 -1.951e-01 7.536e-01 -4.693e-02 5.433e-02 +1.907e-02 1.817e-02 -4.693e-02 2.257e-01 -2.980e-02 +-2.208e-02 -2.104e-02 5.433e-02 -2.980e-02 2.345e-01 +DEAL:Power method::Starting +DEAL:Power method::Convergence step 17 +DEAL::Eigen +DEAL:Power method::Starting +DEAL:Power method::Convergence step 177 +DEAL::Eigen +DEAL::GrowingVectorMemory:Overall allocated vectors: 8 +DEAL::GrowingVectorMemory:Maximum allocated vectors: 2