getfem-users
[Top][All Lists]
Advanced

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

Re: [Getfem-users] Question about the function 'add_normal_Dirichlet_con


From: Dominique Fratantonio
Subject: Re: [Getfem-users] Question about the function 'add_normal_Dirichlet_condition_with_penalization'
Date: Sat, 28 Feb 2015 15:03:23 +0100

Hi,

I wanted to be sure that my last email answer did not cause any misunderstanding.
I still have the same problem with the function 'add_normal_Dirichlet_boundary_condition_with_penalization'.
I report here again the extract of my code:

//--------------------------------------------------------------------------------------------------------------------------------------------------//

   // Main unknown of the problem:
   model.add_fem_variable("u", mf_u);

   // Viscous term
   // Linearized elasticity brick:
   model.add_initialized_fixed_size_data("lambda", plain_vector(1, 0.0)); // Second viscosity coefficient
   model.add_initialized_fixed_size_data("nu", plain_vector(1, 1/(pd.Re)));
   getfem::add_isotropic_linearized_elasticity_brick(model, mim, "u", "lambda", "nu");

   // Incompressible constraint
   // p used as Lagrange multiplier, but it doesn't need to be
   // add_multiplier as for the Dirichlet boundary conditions
   // Linearized incompressibility condition brick:
   model.add_fem_variable("p", mf_p);
   getfem::add_linear_incompressibility(model, mim, "u", "p");

   // Dirichlet condition on inflow:
   std::vector<scalar_type> F(mf_u.nb_dof());
   gmm::clear(F);
   getfem::interpolation_function(mf_u, F, u_exact);
   model.add_initialized_fem_data("InflowData", mf_u, F);

   if (PENALIZATION_INFLOW && act_DNS) {
       // With penalization
       scalar_type dirichlet_coefficient_inflow = 1e8;
       getfem::add_Dirichlet_condition_with_penalization(model,mim,"u",dirichlet_coefficient_inflow,INFLOW_BOUNDARY_NUM,"InflowData");
   } else {
       // With multipliers
       model.add_multiplier("Inflow", mf_mult_inflow, "u", mim,  INFLOW_BOUNDARY_NUM);
       getfem::add_Dirichlet_condition_with_multipliers(model, mim, "u","Inflow",INFLOW_BOUNDARY_NUM,"InflowData");
   }

   // Dirichlet condition on cylinder:
   bgeot::base_vector no_penetration(1); no_penetration[0]=0;
   model.add_initialized_fixed_size_data("CylinderData",no_penetration);

   if (PENALIZATION_CYL && act_DNS) {
       // With penalization
       scalar_type dirichlet_coefficient_cyl = 1e8;
       getfem::add_normal_Dirichlet_condition_with_penalization(model,mim,"u",dirichlet_coefficient_cyl,CYLINDER_BOUNDARY_NUM,"CylinderData");
   } else {
       // With multipliers
       model.add_multiplier("Cylinder", mf_mult_cyl, "u", mim, CYLINDER_BOUNDARY_NUM);
       getfem::add_normal_Dirichlet_condition_with_multipliers(model,mim,"u","Cylinder",CYLINDER_BOUNDARY_NUM,"CylinderData");
   }

   // Build matrices
   model.assembly(getfem::model::BUILD_ALL);

//------------------------------------------------------------------------------------------------------------------------------------------------------//

Moreover, I'm completely out of idea about what the following error means:

//------------------------------------------------------------------------------------------------------------------------------------------------------//

Trace 2 in getfem_models.cc, line 5667: Stiffness matrix assembly for isotropic linearized elasticity
Trace 2 in getfem_models.cc, line 5931: Stokes term assembly
Trace 2 in getfem_models.cc, line 3157: Mass term assembly for Dirichlet condition
Trace 2 in getfem_models.cc, line 3201: Source term assembly for Dirichlet condition
Trace 2 in getfem_models.cc, line 3157: Mass term assembly for Dirichlet condition
============================================
|      An error has been detected !!!      |
============================================
Error in getfem_assembling_tensors.cc, line 488 : 
Non matrix field

//------------------------------------------------------------------------------------------------------------------------------------------------------//

Again, I just wanted to be sure that you know that I still have the same problem.

Thank you very much in advance.


2015-02-23 10:17 GMT+01:00 Yves Renard <address@hidden>:

Dear Kostas,

There is no release 4.3.2. I incremented the patch number in configure.ac to produce some archives and it as been automatically ported to the web site but this is an artefact. I will correct this.

Yves.


Le 23/02/2015 09:56, Konstantinos Poulios a écrit :
Hi, I am wondering where is the link for 4.3.2 (or even 4.3.1) here:

http://download.gna.org/getfem/stable/

I can only see the tarball for 4.3.

Am I missing something?

Best regards
Kostas

On Sun, Feb 22, 2015 at 5:54 PM, Dominique Fratantonio <address@hidden> wrote:
Hi,

I'm using getfem-4.3.2 and I am having some problem with the function 'add_normal_Dirichlet_condition_with_penalization'.
Here an extract of how I am implementing it:

//--------------------------------------------------------------------------------------------------------------------------------------------------//

   // Main unknown of the problem:
   model.add_fem_variable("u", mf_u);

   // Viscous term
   // Linearized elasticity brick:
   model.add_initialized_fixed_size_data("lambda", plain_vector(1, 0.0)); // Second viscosity coefficient
   model.add_initialized_fixed_size_data("nu", plain_vector(1, 1/(pd.Re)));
   getfem::add_isotropic_linearized_elasticity_brick(model, mim, "u", "lambda", "nu");

   // Incompressible constraint
   // p used as Lagrange multiplier, but it doesn't need to be
   // add_multiplier as for the Dirichlet boundary conditions
   // Linearized incompressibility condition brick:
   model.add_fem_variable("p", mf_p);
   getfem::add_linear_incompressibility(model, mim, "u", "p");

   // Dirichlet condition on inflow:
   std::vector<scalar_type> F(mf_u.nb_dof());
   gmm::clear(F);
   getfem::interpolation_function(mf_u, F, u_exact);
   model.add_initialized_fem_data("InflowData", mf_u, F);

   if (PENALIZATION_INFLOW && act_DNS) {
       // With penalization
       scalar_type dirichlet_coefficient_inflow = 1e8;
       getfem::add_Dirichlet_condition_with_penalization(model,mim,"u",dirichlet_coefficient_inflow,INFLOW_BOUNDARY_NUM,"InflowData");
   } else {
       // With multipliers
       model.add_multiplier("Inflow", mf_mult_inflow, "u", mim,  INFLOW_BOUNDARY_NUM);
       getfem::add_Dirichlet_condition_with_multipliers(model, mim, "u","Inflow",INFLOW_BOUNDARY_NUM,"InflowData");
   }

   // Dirichlet condition on cylinder:
   bgeot::base_vector no_penetration(1); no_penetration[0]=0;
   model.add_initialized_fixed_size_data("CylinderData",no_penetration);

   if (PENALIZATION_CYL && act_DNS) {
       // With penalization
       scalar_type dirichlet_coefficient_cyl = 1e8;
       getfem::add_normal_Dirichlet_condition_with_penalization(model,mim,"u",dirichlet_coefficient_cyl,CYLINDER_BOUNDARY_NUM,"CylinderData");
   } else {
       // With multipliers
       model.add_multiplier("Cylinder", mf_mult_cyl, "u", mim, CYLINDER_BOUNDARY_NUM);
       getfem::add_normal_Dirichlet_condition_with_multipliers(model,mim,"u","Cylinder",CYLINDER_BOUNDARY_NUM,"CylinderData");
   }

   // Build matrices
   model.assembly(getfem::model::BUILD_ALL);

//------------------------------------------------------------------------------------------------------------------------------------------------------//

In the above extract of the code, everything works fine except when I try to use 'add_normal_Dirichlet_condition_with_penalization'.
The similar function 'add_Dirichlet_condition_with_penalization' works fine as well.
Altought I succeed in compiling the code, when 'add_normal_Dirichlet_condition_with_penalization' runs, I obtain the following error:

//------------------------------------------------------------------------------------------------------------------------------------------------------//

Trace 2 in getfem_models.cc, line 5667: Stiffness matrix assembly for isotropic linearized elasticity
Trace 2 in getfem_models.cc, line 5931: Stokes term assembly
Trace 2 in getfem_models.cc, line 3157: Mass term assembly for Dirichlet condition
Trace 2 in getfem_models.cc, line 3201: Source term assembly for Dirichlet condition
Trace 2 in getfem_models.cc, line 3157: Mass term assembly for Dirichlet condition
============================================
|      An error has been detected !!!      |
============================================
Error in getfem_assembling_tensors.cc, line 488 : 
Non matrix field

//------------------------------------------------------------------------------------------------------------------------------------------------------//

I really do not understand how to fix this problem and what it means.

Thank you in advance.
Cheers.




_______________________________________________
Getfem-users mailing list
address@hidden
https://mail.gna.org/listinfo/getfem-users




_______________________________________________
Getfem-users mailing list
address@hidden
https://mail.gna.org/listinfo/getfem-users


-- 

  Yves Renard (address@hidden)       tel : (33) 04.72.43.87.08
  Pole de Mathematiques, INSA-Lyon             fax : (33) 04.72.43.85.29
  20, rue Albert Einstein
  69621 Villeurbanne Cedex, FRANCE
  http://math.univ-lyon1.fr/~renard

---------

_______________________________________________
Getfem-users mailing list
address@hidden
https://mail.gna.org/listinfo/getfem-users



reply via email to

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