Dear Daniel,

Thank you a lot for the hint, makes perfect sense! The 
MatrixTools::apply_boundary_values works well now! But I believe i also 
need to adjust the VectorTools::interpolate_boundary_values accordingly. 
Right now i have defined a template for pressure component boundary values:

template <int dim>
class PressureBoundaryValues : public Function<dim>
{
public:
virtual std::complex<double> value(const Point<dim> &p,
                                                                  const 
unsigned int component = 1) const override; //component 1 for the pressure 
block in vector-valued problem
}

template <int dim>
std::complex<double> PressureBoundaryValues<dim>::value(const Point<dim> &p,
                                                                            
                                const unsigned int /*component*/) const
{
const std::complex<double> i = {0,1};
return i;
}

And later I am using:

VectorTools::interpolate_boundary_values(dof_handler, 
                                                                            
1, 
                                                                            
PressureBoundaryValues<dim>(), 
                                                                            
boundary_values, 
                                                                            
fe.component_mask(pressures));

The compiler complains with: 'error: no matching function for call to 
‘interpolate_boundary_values(dealii::DoFHandler<3, 3>&, int, 
Poroacoustics::PressureBoundaryValues<3>, std::map<unsigned int, 
std::complex<double> >&, dealii::ComponentMask)’.

Could you please give me a hand on this issue as well? Thank you a lot!

Kind regards,
Mariia


вторник, 14 сентября 2021 г. в 16:33:44 UTC+2, d.arnd...@gmail.com: 

> Mariia,
>
> You need to make sure that the std::map also uses values of type 
> std::complex<double>. The compile error you shared shows that you use 
> doubles.
>
> Best,
> Daniel
>
> Am Di., 14. Sept. 2021 um 07:30 Uhr schrieb Мария Бронзова <
> masia...@gmail.com>:
>
>> Hi everyone,
>>
>> I ran into the following difficulty: I have a vector-valued problem with 
>> complex numbers as entries for my BlockSparseMatrix system_matrix and 
>> BlockVector system_rhs and solution vectors and I am trying to apply 
>> Dirichlet boundary conditions, using the 
>> MatrixTools::apply_boundary_values(boundary_values, system_matrix, 
>> solution, system_rhs) function. 
>>
>> The compiler is complaining, indicating the error: no matching function 
>> for call to ‘apply_boundary_values(std::map<unsigned int, double>&, 
>> dealii::BlockSparseMatrix<std::complex<double> >&, 
>> dealii::BlockVector<std::complex<double> >&, 
>> dealii::BlockVector<std::complex<double> >&)’.
>>
>> Is it not possible to use the function for complex-values systems?
>>
>> Thank you!
>>
>> Kind regards,
>> Mariia
>>
>> -- 
>> 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+un...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/dealii/aa6ad6fa-7404-4617-bff3-3f108d2b6001n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/dealii/aa6ad6fa-7404-4617-bff3-3f108d2b6001n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/fd8a26df-42e2-4e01-aadf-7061d5f697d0n%40googlegroups.com.

Reply via email to