| 70 | } |
| 71 | |
| 72 | void seissol::physics::Planarwave::init(const CellMaterialData& materialData) { |
| 73 | assert(m_varField.size() == m_ampField.size()); |
| 74 | |
| 75 | std::array<std::complex<double>, |
| 76 | seissol::model::MaterialT::NumQuantities * seissol::model::MaterialT::NumQuantities> |
| 77 | planeWaveOperator{}; |
| 78 | seissol::model::getPlaneWaveOperator(materialData.local, m_kVec.data(), planeWaveOperator.data()); |
| 79 | seissol::eigenvalues::Eigenpair<std::complex<double>, seissol::model::MaterialT::NumQuantities> |
| 80 | eigendecomposition; |
| 81 | #ifdef USE_POROELASTIC |
| 82 | computeEigenvaluesWithLapack(planeWaveOperator, eigendecomposition); |
| 83 | #else |
| 84 | computeEigenvaluesWithEigen3(planeWaveOperator, eigendecomposition); |
| 85 | #endif |
| 86 | m_lambdaA = eigendecomposition.values; |
| 87 | m_eigenvectors = eigendecomposition.vectors; |
| 88 | } |
| 89 | |
| 90 | void seissol::physics::Planarwave::evaluate( |
| 91 | double time, |
nothing calls this directly
no test coverage detected