Dear Zhenghuai Guo,

The parameter you called "/__fmal” is an expression of the weak form language describing the quantity to be contracted against the unit normal vector representing the Neumann term. In fact/
/
/
/getfem::add_normal_source_term_brick(model, mim_1,"u_1", "(your expression)", boundary_top_1);/
/
/
/is equivalent to/

//getfem::add_source_term_brick(model, mim_1,"u_1",/////"(your expression).Normal"/, boundary_top_1);//
//
//
//or even to//

////getfem::add_source_term(model, mim_1,/////"((your expression).Normal).Test_u_1"/, boundary_top_1);////
////
////
////Best regards,////
////
////
////Yves
////
//
//

Le 30/04/2019 à 06:38, Zhenghuai Guo a écrit :

Hi Yves,

Thank you very much for the advice. The “/getfem::add_source_term_brick(model, mim_1,"u_1", "(your expression).Normal", boundary_top_1);” /is//extremely helpful – making the operation 100 times simpler.

Could you please let me know about the parameter “/__fmal” in /getfem::add_normal_source_term_brick/? /Where can I find the documentation or example for it?

Thank you very much

Regards

Zhenghuai Guo

*From:*Yves Renard <[email protected]>
*Sent:* Tuesday, April 30, 2019 12:42 AM
*To:* Zhenghuai Guo <[email protected]>; [email protected] *Cc:* [email protected]; Konstantinos Poulios <[email protected]>
*Subject:* Re: How to apply hydraulic pressure on the boundary

Dear Zhenghuai Guo,

Yes, it shoudl work for __fmal = "F" and "u_1" the variable on which you add a source term. Alternatively, If you have an explicit expression, you can just use

/getfem::add_source_term_brick(model, mim_1,"u_1", "(your expression).Normal", boundary_top_1);/

Best regards,

Yves

Le 28/04/2019 à 12:14, Zhenghuai Guo a écrit :

    Hi , Andriy and Yves and Konstantinos,

    I would like to add a source term to represent the liquid
    hydraulic pressure acting on the boundary /_boundary_top_1._/
    After some study of the getfem, I suspect I can do it as codes
    below. Could you please advise whether my thinking is right or
    not? Or is there another better way to do so – because I find it
    hard to get the outward unit normals according to the geometrical
    coordinates. Thank you very much.

    Zhenghuai Guo

    /dim_type N = mesh1.dim();/

    /getfem::mesh_fem mf_rhs(mesh1,N);/

    /size_type nb_dof_rhs = mf_rhs.nb_basic_dof();/

    /plain_vector F(nb_dof_rhs*N);/

    /getfem::interpolation_function(mf_rhs, F, neumann_val,
    boundary_top_1);/

    /model.add_initialized_fem_data("hydraylic_pressure", mf_rhs, F);/

    /mf_rhs.set_finite_element(getfem::fem_descriptor("FEM_PK(2, 1)"));/

    /model.add_initialized_scalar_data("hydraylic_pressure", pressure);/

    /getfem::add_normal_source_term_brick(model, mim_1,"u_1",__fmal,
    boundary_top_1);/

    //

    /where_neumann_val _/is a function which gives the /_hydraulic
    pressure * _/_outward unit normal_ at the point x on the boundary/_:_/

    /base_small_vector neumann_val(const base_node &x)/

    /{ return hydraulic pressure * ourward unit normal at x; }/

--
   Yves Renard ([email protected]  <mailto:[email protected]>)    
   tel : (33) 04.72.43.87.08
   INSA-Lyon
   20, rue Albert Einstein
   69621 Villeurbanne Cedex, FRANCE
   http://math.univ-lyon1.fr/~renard
---------


--

  Yves Renard ([email protected])       tel : (33) 04.72.43.87.08
  INSA-Lyon
  20, rue Albert Einstein
  69621 Villeurbanne Cedex, FRANCE
  http://math.univ-lyon1.fr/~renard

---------

Reply via email to