46 dofs_scalar_ = ansatz_space_scalar_.get_number_of_dofs();
47 dofs_vector_ = ansatz_space_vector_.get_number_of_dofs();
57 system_matrix_ = Eigen::MatrixXcd(dofs_scalar_ + dofs_vector_,
58 dofs_scalar_ + dofs_vector_);
61 &system_matrix_, ansatz_space_mass_, ansatz_space_scalar_,
62 ansatz_space_vector_, wavenumber_);
70 (1 << ansatz_space_vector_.get_refinement_level());
80 excitation_ = Eigen::VectorXcd::Zero(dofs_scalar_);
83 &system_matrix_, &excitation_, ansatz_space_mass_, ansatz_space_scalar_,
84 ansatz_space_vector_, wavenumber_,
source);
88 std::function<std::complex<double>(Eigen::Vector3d)>
one =
89 [](Eigen::Vector3d
in) {
return std::complex<double>(1., 0.); };
91 HelmholtzSingleLayerOperator>
96 system_matrix_.bottomRows(dofs_scalar_) *= omega_ *
97 std::complex<double>(0., 1.) *
98 Constants::mu0 * Constants::eps0;
99 system_matrix_.leftCols(dofs_vector_) *=
100 1. / (omega_ * std::complex<double>(0., 1.) * Constants::mu0);
103 system_matrix_.trace() / ((
double)system_matrix_.cols());
105 Eigen::VectorXcd
a = Eigen::VectorXcd::Zero(system_matrix_.cols());
106 a.bottomRows(dofs_scalar_) =
const_lf.get_discrete_linear_form();
119 void set_omega(
double omega) { omega_ =
omega; }
123 const MatrixFormat &get_system_matrix()
const {
return system_matrix_; }
144 return ansatz_space_scalar_;
147 return ansatz_space_mass_;
154 Eigen::VectorXcd excitation_;
163 std::complex<double> wavenumber_;