Hi Jean-Paul,

 

Thank you for your advises and interest in my problem. 

 

Yesterday, I came up with an idea how to circumvent my problem. I simply, 
use a BlockSparseMatrix object to assemble my coupled generalized Stokes 
system matrix. I compose it from the following 2*2 blocks {V_V, V_P; P_V, 
P_P} where “V” stands for the six velocity components of v_n and v_e; and 
“P” stands for the two pressure components p_i and p_e. As far as I 
understand, the block P_P includes only zeros. Therefore, it should be 
relatively straightforward to follow the solution technique of step-22 with 
the Schur complement.   

 

I am still working on the implementation of my idea, and I hope that it 
will be successful.

 

Best,

Oded

 

On Tuesday, December 20, 2016 at 7:48:42 AM UTC-5, Jean-Paul Pelteret wrote:
>
> Hi Oded,
>
> Have you managed to get anywhere with this? I have no particularly 
> creative suggestions for this issue. The only thing I can think of is to 
> derive a new class from SparseMatrix, which would contain your 
> BlockMatrixArray as a member variable, and work with that. There is also 
> the BlockLinearOperator 
> <https://www.dealii.org/8.4.1/doxygen/deal.II/classBlockLinearOperator.html> 
> class which appears to have a similar purpose as BlockMatrixArray, but I've 
> never used it so can't comment further on it.
>
> Best,
> J-P
>
> On Friday, December 16, 2016 at 6:37:14 PM UTC+1, Oded Yaakobi wrote:
>>
>> Dear Jean-Paul and Wolfgang,
>>
>>  
>>
>> Thank you for your answers.
>>
>>  
>>
>> *> I think that the BlockMatrixArray 
>> <https://www.dealii.org/8.4.1/doxygen/deal.II/classBlockMatrixArray.html> 
>> class might offer the functionality that you're looking for?*
>>
>>  
>>
>> The class BlockMatrixArray is almost what I need, but there is still a 
>> hurdle. If I follow step-22, then I should have in my code a line that is 
>> analogous to the one that appears there:
>>
>>  
>>
>> A_preconditioner->initialize 
>> <http://dealii.org/developer/doxygen/deal.II/classSparseILU.html#ae4b56dfaab3fd8820faa1b21160b1acb>
>>  
>> (system_matrix.block(0,0),
>>
>> typename InnerPreconditioner<dim>::type::AdditionalData());
>>
>>  
>>
>> Note that the type of the first argument of the function “initialize” is:
>>
>> const SparseMatrix< somenumber > &
>>
>>  
>>
>> However, in my case, the natural class of the argument that is available 
>> to me is BlockMatrixArray that is not derived from SparseMatrix. 
>>
>>  
>>
>> It is not clear to me how to overcome this issue. Is there a way to 
>> transform a BlockMatrixArray object (which is composed of 2*2 SparseMatrix 
>> objects) to a SparseMatrix object?
>>
>>  
>>
>> I would be happy to know if you have any suggestions.
>>
>>  
>>
>> Best,
>>
>> Oded
>>
>

-- 
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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to