getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] r4839 - /trunk/getfem/tests/test_assembly.cc


From: Yves . Renard
Subject: [Getfem-commits] r4839 - /trunk/getfem/tests/test_assembly.cc
Date: Sun, 21 Dec 2014 12:54:54 -0000

Author: renard
Date: Sun Dec 21 13:54:53 2014
New Revision: 4839

URL: http://svn.gna.org/viewcvs/getfem?rev=4839&view=rev
Log:
minor change

Modified:
    trunk/getfem/tests/test_assembly.cc

Modified: trunk/getfem/tests/test_assembly.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/tests/test_assembly.cc?rev=4839&r1=4838&r2=4839&view=diff
==============================================================================
--- trunk/getfem/tests/test_assembly.cc (original)
+++ trunk/getfem/tests/test_assembly.cc Sun Dec 21 13:54:53 2014
@@ -54,14 +54,14 @@
 
 int fail_cnt = 0;
 
-static void classical_mesh_fem(getfem::mesh_fem& mf, getfem::short_type K) {
-  for (dal::bv_visitor cv(mf.linked_mesh().convex_index()); !cv.finished();
-       ++cv) {
-    bgeot::pgeometric_trans pgt = mf.linked_mesh().trans_of_convex(cv);
-    mf.set_finite_element(cv, getfem::classical_fem(pgt,K));
-  }
-  //mf.set_classical_finite_element(K,2*K);
-}
+// static void classical_mesh_fem(getfem::mesh_fem& mf, getfem::short_type K) {
+//   for (dal::bv_visitor cv(mf.linked_mesh().convex_index()); !cv.finished();
+//        ++cv) {
+//     bgeot::pgeometric_trans pgt = mf.linked_mesh().trans_of_convex(cv);
+//     mf.set_finite_element(cv, getfem::classical_fem(pgt,K));
+//   }
+//   //mf.set_classical_finite_element(K,2*K);
+// }
 
 
 typedef enum {
@@ -876,7 +876,7 @@
 
 
 
-static void test_new_assembly(void) {
+static void test_new_assembly(int N, int NX, int pK) {
 
     // std::string expr="([1,2;3,address@hidden,2;1,2])(:,2,1,1)(1)+ 
[1,2;3,4](1,:)(2)"; // should give 4
     // std::string expr="[1,2;3,address@hidden,2;1,2]*[2,3;2,1]/4 + 
[1,2;3,1]*[1;1](1)"; // should give [4, 8; 12, 13]
@@ -901,10 +901,6 @@
     
     getfem::mesh m;
 
-    int N = 2;
-    int NX = 100;
-    int pK = 2;
-
     char Ns[5]; sprintf(Ns, "%d", N);
     char Ks[5]; sprintf(Ks, "%d", pK);
     bgeot::pgeometric_trans pgt =
@@ -990,21 +986,23 @@
       SCAL_TEST_0("Test on function integration 2",
                   "-Derivative_sin(pi*X).exp(X*0)", mim, 0);
       SCAL_TEST_0("Test on function integration 2",
-                  "sin(pi*X).exp(X*0)", mim, 2.0*N/M_PI);
+                  "sin(pi*X).exp(X*0)", mim, 2.0*double(N)/M_PI);
       SCAL_TEST_0("Test on function integration 2",
-                  "Derivative_cos(pi*X).exp(X*0)", mim, -2.0*N/M_PI);
+                  "Derivative_cos(pi*X).exp(X*0)", mim, -2.0*double(N)/M_PI);
       SCAL_TEST_0("Test on function integration 3",
                   "cos(pi*X).Id(meshdim)(:,1)", mim,0);
     }
 
     if (all) {
-      getfem::ga_define_function("dummyfunc", 1,
-                                 "sin(pi*t/2)+2*sqr(t)-[t;t].[t;t]");
-      SCAL_TEST_0("Test on user defined functions",
-                  "dummyfunc(5)", mim, 1);
-      getfem::ga_define_function("dummyfunc2", 1, "cos(pi*t)");
-      SCAL_TEST_0("Test on user defined functions",
-                  "dummyfunc2(X(1))", mim, 0);
+      if (N == 2) {
+        getfem::ga_define_function("dummyfunc", 1,
+                                   "sin(pi*t/2)+2*sqr(t)-[t;t].[t;t]");
+        SCAL_TEST_0("Test on user defined functions",
+                    "dummyfunc(5)", mim, 1);
+        getfem::ga_define_function("dummyfunc2", 1, "cos(pi*t)");
+        SCAL_TEST_0("Test on user defined functions",
+                    "dummyfunc2(X(1))", mim, 0);
+      }
     }
 
 
@@ -1160,6 +1158,38 @@
                  "*Grad_Test_u:Grad_Test2_u"
                  "+ mu*(Grad_Test_u'+Grad_Test_u):Grad_Test2_u",
                  mim2, Iu, Iu);
+
+      if (N == 2) {
+        MAT_TEST_2(ndofu,ndofu,"lambda*Trace(Grad_Test_u)*Trace(Grad_Test2_u) "
+                   "+mu*(Grad_Test_u'(:,1)"
+                   "+Grad_Test_u(:,1)):Grad_Test2_u(:,1)"
+                   "+mu*(Grad_Test_u'(:,2)"
+                   "+Grad_Test_u(:,2)):Grad_Test2_u(:,2) ", mim2, Iu, Iu);
+        
+        MAT_TEST_2(ndofu,ndofu,"lambda*Trace(Grad_Test_u)*Trace(Grad_Test2_u) "
+                   "+mu*(Grad_Test_u'(1,:)"
+                   "+Grad_Test_u(1,:)):Grad_Test2_u(1,:)"
+                   "+mu*(Grad_Test_u'(2,:)"
+                   "+Grad_Test_u(2,:)):Grad_Test2_u(2,:) ", mim2, Iu, Iu);
+      }
+      if (N == 3) {
+        MAT_TEST_2(ndofu,ndofu,"lambda*Trace(Grad_Test_u)*Trace(Grad_Test2_u) "
+                   "+mu*(Grad_Test_u'(:,1)"
+                   "+Grad_Test_u(:,1)):Grad_Test2_u(:,1)"
+                   "+mu*(Grad_Test_u'(:,2)"
+                   "+Grad_Test_u(:,2)):Grad_Test2_u(:,2)"
+                   "+mu*(Grad_Test_u'(:,3)"
+                   "+Grad_Test_u(:,3)):Grad_Test2_u(:,3) ", mim2, Iu, Iu);
+        
+        MAT_TEST_2(ndofu,ndofu,"lambda*Trace(Grad_Test_u)*Trace(Grad_Test2_u) "
+                   "+ mu*(Grad_Test_u'(1,:)"
+                   "+Grad_Test_u(1,:)):Grad_Test2_u(1,:)"
+                   "+ mu*(Grad_Test_u'(2,:)"
+                   "+Grad_Test_u(2,:)):Grad_Test2_u(2,:)"
+                   "+mu*(Grad_Test_u'(3,:)"
+                   "+Grad_Test_u(3,:)):Grad_Test2_u(3,:) ", mim2, Iu, Iu);
+      }
+      
     }
 
     if (all) {
@@ -1186,9 +1216,8 @@
   GMM_SET_EXCEPTION_DEBUG; // Exceptions make a memory fault, to debug.
   FE_ENABLE_EXCEPT;        // Enable floating point exception for Nan.
   
-  test_new_assembly();
-  return 0; // a supprimer a terme, l'ancien assemblage doit toujours ĂȘtre 
testé ou alors faire deux tests.
-  
+  test_new_assembly(2, 25, 2);
+  test_new_assembly(3, 7, 2);
 
 
   // testbug();




reply via email to

[Prev in Thread] Current Thread [Next in Thread]