Hi, all 


I am always thank you for all guys here in this community. 


I have a question on the use of  VectorTools::interpolate_boundary_values 
functions


Typically we use this function in when we set-up system as in the form 



VectorTools::interpolate_boundary_values (dof_handler,

                                        1,

                                       *Original**_VelBndValues<dim>(),*

                                       constraints,

                                       fe.component_mask(velocities));



The red lined functions are usually declared out side of main class. 


One problem I am interested in now is to (Part A) solve stokes flow with no 
slip boundary condition on every boundary one time (as step-22), -


and then to (Part B) solve same system again with slightly different 
boundary condition comes from the straight problem


If I finish Part A, i have numerical solution of (u,p) linked with dot 
handler. 


In (Part B), I post process solutions part A, e.g. I calculated stress 
value and I calculated tangential velocity of a boundary using Navier slip 
condition, 


So, I need to use 



VectorTools::interpolate_boundary_values (dof_handler,

                                        1,

                                       *New_VelBndValues<dim>(),*

                                       constraints,

                                       fe.component_mask(velocities));


such that 

    

     template<intdim>

     double

     New_VelBndValues<dim>::value (constPoint<dim>  &p,

     constunsignedintcomponent) const

     {

     Assert (component < this->n_components,

     ExcIndexRange (component, 0, this->n_components));

     

     if(component == 0)

         *return calc_tangential_velocity ();     (Error Here!!)*

     else

         return0;

     }




where '*calc_tangential_velocity ();' *is declared in main class, since I 
should have information of dot_handler and solution vectors.


  template<intdim>

  classStokesProblem

  {

  public:

    StokesProblem (constunsignedintdegree);

    voidrun ();

  private:

    

      ……

 

    *double calc_tangential_velocity ();*

 

    BlockVector<double> solution;

 

};

    

  ////////

Obviously, this method does not work, I mean I cannot compile the code and 
it shows  'use of undeclared identifier 'calc_tangential_velocity' on the 
line  *(Error Here!!)*

I would appreciate any one who comment it. It seems that complier has to 
know what is that before. 


Will this be possible in a certain way? How can I  go around this problem ? 


Thanks, 


Jaekwang 



-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to