[deal.II] Re: Assemble system with variational right hand side

2017-01-23 Thread Bruno Turcksin
Hi,

On Monday, January 23, 2017 at 2:06:17 PM UTC-5, Jaekwang Kim wrote:
>
> I just wanted to make sure that whether I implemented it right, 
> but I still cannot sure whether I am doing correctly. Let me be with 
> more specific questions. 
>
This is not the right way to do it. You cannot write your code and then, 
ask people if what you did is correct. Maybe it will look correct but 
something that you don't show is wrong or the person looking at your code 
misses something obvious. On top of that if everybody on the mailing list 
starts asking if their code is correct, we won't have time to answer other 
questions. What you need to do is to write a test, i.e. a small code that 
use the function you wrote, and you need to make sure that the code works 
like it should on this simple example. This way not only you will be able 
to convince yourself that the code works like it should but you can make 
sure six months from now that everything is still working. If your test 
doesn't work like expected, then you may want to ask questions on the 
mailing list.

Best,

Bruno

-- 
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.


[deal.II] Re: Assemble system with variational right hand side

2017-01-23 Thread Jaekwang Kim
Thanks for the reply, 

I just wanted to make sure that whether I implemented it right, 
but I still cannot sure whether I am doing correctly. Let me be with 
more specific questions. 

First, Yes I am considering 2-dimensional flow.
if I writes a code that looks as previous, 

template 

  void

  RightHandSide::vector_value (const Point ,

Vector   ) const

  {

values(0) =  pow(p[0],2);  

values(1) =  pow(p[1],2);

   * values(2) =  0.0;  // I assumed this always zero. because f is 2 
dimensional force, and we will not have third component of f*. 

  }

1) whether my interpretation of 'values(2) is correct' - marked with red 
line 

2) If we considered a vector value test function phi=(*v,*q)= (v_x, v_y , 
q), the right hand side term in weak form should look like this 

RHS = (*v, f* ) at domain o mega. 

since both *v* and* f* is vector that has two direction , (x and y) , the 
calculation should be conducted in both direction 
but in the following code, it seems that I am multiplying only the first 
component v and f... 
Do I understand this appropriately?

In this sense, I don't understand my code well... cuz it looks like...

*const unsigned int component_i =*

*   fe.system_to_component_index(i).first;   <- Here I only said the first *
*component...*

* local_rhs(i) += fe_values.shape_value(i,q) **

* rhs_values[q](component_i) **

* fe_values.JxW(q);*


Shouldn't this be some thing like this?  

*const unsigned int component_i =*

*   fe.system_to_component_index(i).first; *

*const unsigned int component_j = *

*  fe.system_to_component_index(j).second; *

* local_rhs(i) += (fe_values.shape_value(i,q) **
*rhs_values[q](component_i)) *

*(fe_values.shape_value(i,q) **
*rhs_values[q](component_j)) *
* fe_values.JxW(q);* 

-- 
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.