Thank you very much for the answer. 
I read step-67 and 59 and is somewhere mentioned that there are many 
different ways to deal with multiple components. In my case (complex 
values) need only 2.
I was wondering if it is possible to use the 
MatrixFreeOperators::LaplaceOperator 
and MatrixFreeOperators::MassOperato with 2 components. If so, could you 
please give me some clues? 

Thank you very much.
Regards, 
Hermes

El lunes, 18 de octubre de 2021 a las 6:32:54 UTC+2, peterrum escribió:

> Hi Hermes,
>
> I would suggest that you first take a look at step-67 (
> https://www.dealii.org/developer/doxygen/deal.II/step_67.html): it deals 
> with systems with multiple components. Although I am not particular 
> familiar with step-29, I guess you can express your complex system as two 
> component system so that many aspects shown in step-67 could be used here.
>
> PM
>
> On Friday, 15 October 2021 at 14:02:10 UTC+2 [email protected] wrote:
>
>> Dear all, 
>>
>> I still have issues figuring out how to have access to the component 
>> index when doing a MatrixFree implementation with complex values. I would 
>> really appreciate it if someone could help me.
>>
>> Thank you very much
>> Regards, 
>> H
>>
>> El miércoles, 13 de octubre de 2021 a las 19:07:07 UTC+3, Hermes Sampedro 
>> escribió:
>>
>>> Good evening, 
>>>
>>> I am implementing the problem presented in step-29 using a MatrixFree 
>>> approach as presented in step-37.
>>>
>>> I have few questions that I would like to ask regarding the 
>>> local_apply() function (shown in step-37):
>>>
>>>    - I am confused about the way of having access to the different 
>>>    complex components. In this case, as the double for loop (i, j) is 
>>>    avoided,  the condition  
>>>    
>>> *if(phi.system_to_component_index(i).first==phi.system_to_component_index(j).fsst)
>>>   * is 
>>>    not longer valid. How can I include it in this particular case?
>>>    - In step-29 we had in the assemble_system(): *cell_matrix(i, j) 
>>>    +=(((fe_values.shape_value(i, q_point) *fe_values.shape_value(j, 
>>> q_point)) 
>>>    *(-omega * omega) +(fe_values.shape_grad(i, q_point) 
>>>    *fe_values.shape_grad(j, q_point)) *c * c) *fe_values.JxW(q_point));  * 
>>> Is 
>>>    it right to write it here as: 
>>>    *(omega*omega)*phi.get_values(q)+phi.get_gradient(q)*(c*c)*phi.JxW(q);*
>>>    - The same has to be repeated for 
>>>
>>>
>>> [image: Captura de pantalla 2021-10-13 a las 18.54.55.png]
>>>
>>> Thank you very much
>>> Regards, 
>>> H.
>>>
>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/1a09964f-2421-49c2-ac5f-76bcdfb61888n%40googlegroups.com.

Reply via email to