Public Member Functions | |
PMLProblem () | |
Constructor. More... | |
~PMLProblem () | |
Destructor (empty) More... | |
void | actions_before_newton_solve () |
Update the problem specs before solve (empty) More... | |
void | actions_after_newton_solve () |
Update the problem specs after solve (empty) More... | |
void | doc_solution (DocInfo &doc_info) |
Doc the solution. DocInfo object stores flags/labels for where the output gets written to. More... | |
void | create_pml_meshes () |
Create PML meshes. More... | |
void | apply_boundary_conditions () |
Apply boundary conditions. More... | |
void | actions_before_adapt () |
Actions before adapt: Wipe the PML meshes. More... | |
void | actions_after_adapt () |
Actions after adapt: Rebuild the PML meshes. More... | |
PMLProblem () | |
Constructor. More... | |
~PMLProblem () | |
Destructor (empty) More... | |
void | actions_before_newton_solve () |
Update the problem specs before solve (empty) More... | |
void | actions_after_newton_solve () |
Update the problem specs after solve (empty) More... | |
void | doc_solution (DocInfo &doc_info) |
Doc the solution. DocInfo object stores flags/labels for where the output gets written to. More... | |
void | create_pml_meshes () |
Create PML meshes. More... | |
void | create_flux_elements (const unsigned &b, Mesh *const &bulk_mesh_pt, Mesh *const &helmholtz_inner_boundary_mesh_pt) |
Create Helmholtz flux elements on boundary b of the Mesh pointed to by bulk_mesh_pt and add them to the specified surface Mesh. More... | |
void | create_power_elements (const unsigned &b, Mesh *const &bulk_mesh_pt, Mesh *const &helmholtz_power_boundary_mesh_pt) |
Create Helmholtz power elements on boundary b of the Mesh pointed to by bulk_mesh_pt and add them to the specified surface Mesh. More... | |
void | actions_before_adapt () |
Actions before adapt: Wipe the PML meshes. More... | |
void | actions_after_adapt () |
Actions after adapt: Rebuild the PML meshes. More... | |
Private Attributes | |
RefineableTriangleMesh< ELEMENT > * | Bulk_mesh_pt |
Pointer to the refineable "bulk" mesh. More... | |
TriangleMesh< ELEMENT > * | Bulk_mesh_pt |
Pointer to the "bulk" mesh. More... | |
Mesh * | PML_right_mesh_pt |
Pointer to the right PML mesh. More... | |
Mesh * | PML_top_mesh_pt |
Pointer to the top PML mesh. More... | |
Mesh * | PML_left_mesh_pt |
Pointer to the left PML mesh. More... | |
Mesh * | PML_bottom_mesh_pt |
Pointer to the bottom PML mesh. More... | |
Mesh * | PML_top_right_mesh_pt |
Pointer to the top right corner PML mesh. More... | |
Mesh * | PML_top_left_mesh_pt |
Pointer to the top left corner PML mesh. More... | |
Mesh * | PML_bottom_right_mesh_pt |
Pointer to the bottom right corner PML mesh. More... | |
Mesh * | PML_bottom_left_mesh_pt |
Pointer to the bottom left corner PML mesh. More... | |
ofstream | Trace_file |
Trace file. More... | |
Mesh * | Helmholtz_inner_boundary_mesh_pt |
Pointer to the mesh containing the Helmholtz inner boundary condition elements. More... | |
Mesh * | Helmholtz_power_boundary_mesh_pt |
Pointer to mesh of elements that compute the radiated power. More... | |
Problem class to demonstrate use of perfectly matched layers for Helmholtz problems.
Definition at line 79 of file unstructured_two_d_helmholtz.cc.
PMLProblem< ELEMENT >::PMLProblem | ( | ) |
Constructor.
Constructor for Helmholtz problem.
Definition at line 169 of file unstructured_two_d_helmholtz.cc.
References GlobalParameters::K_squared.
|
inline |
Destructor (empty)
Definition at line 88 of file unstructured_two_d_helmholtz.cc.
PMLProblem< ELEMENT >::PMLProblem | ( | ) |
Constructor.
|
inline |
Destructor (empty)
Definition at line 260 of file unstructured_two_d_helmholtz_scattering.cc.
void PMLProblem< ELEMENT >::actions_after_adapt | ( | ) |
Actions after adapt: Rebuild the PML meshes.
Actions after adapt: Rebuild the face element meshes.
Definition at line 391 of file unstructured_two_d_helmholtz.cc.
References GlobalParameters::K_squared.
void PMLProblem< ELEMENT >::actions_after_adapt | ( | ) |
Actions after adapt: Rebuild the PML meshes.
|
inline |
Update the problem specs after solve (empty)
Definition at line 94 of file unstructured_two_d_helmholtz.cc.
|
inline |
Update the problem specs after solve (empty)
Definition at line 266 of file unstructured_two_d_helmholtz_scattering.cc.
void PMLProblem< ELEMENT >::actions_before_adapt | ( | ) |
Actions before adapt: Wipe the PML meshes.
Actions before adapt: Wipe the mesh of face elements.
Definition at line 351 of file unstructured_two_d_helmholtz.cc.
void PMLProblem< ELEMENT >::actions_before_adapt | ( | ) |
Actions before adapt: Wipe the PML meshes.
|
inline |
Update the problem specs before solve (empty)
Definition at line 91 of file unstructured_two_d_helmholtz.cc.
|
inline |
Update the problem specs before solve (empty)
Definition at line 263 of file unstructured_two_d_helmholtz_scattering.cc.
void PMLProblem< ELEMENT >::apply_boundary_conditions | ( | ) |
Apply boundary conditions.
Definition at line 428 of file unstructured_two_d_helmholtz.cc.
void PMLProblem< ELEMENT >::create_flux_elements | ( | const unsigned & | b, |
Mesh *const & | bulk_mesh_pt, | ||
Mesh *const & | helmholtz_inner_boundary_mesh_pt | ||
) |
Create Helmholtz flux elements on boundary b of the Mesh pointed to by bulk_mesh_pt and add them to the specified surface Mesh.
Create Helmholtz inner Flux Elements on the b-th boundary of the Mesh object pointed to by bulk_mesh_pt and add the elements to the Mesh object pointed to by helmholtz_inner_boundary_mesh_pt
Definition at line 757 of file unstructured_two_d_helmholtz_scattering.cc.
References PMLProblem< ELEMENT >::create_power_elements(), and GlobalParameters::prescribed_incoming_flux().
void PMLProblem< ELEMENT >::create_pml_meshes | ( | ) |
Create PML meshes.
Create PML meshes and add them to the problem's sub-meshes.
Definition at line 536 of file unstructured_two_d_helmholtz.cc.
Referenced by PMLProblem< ELEMENT >::create_power_elements().
void PMLProblem< ELEMENT >::create_pml_meshes | ( | ) |
Create PML meshes.
void PMLProblem< ELEMENT >::create_power_elements | ( | const unsigned & | b, |
Mesh *const & | bulk_mesh_pt, | ||
Mesh *const & | helmholtz_power_boundary_mesh_pt | ||
) |
Create Helmholtz power elements on boundary b of the Mesh pointed to by bulk_mesh_pt and add them to the specified surface Mesh.
Create Helmholtz inner Flux Elements on the b-th boundary of the Mesh object pointed to by bulk_mesh_pt and add the elements to the Mesh object pointed to by helmholtz_power_boundary_mesh_pt
Definition at line 793 of file unstructured_two_d_helmholtz_scattering.cc.
References PMLProblem< ELEMENT >::create_pml_meshes().
Referenced by PMLProblem< ELEMENT >::create_flux_elements().
void PMLProblem< ELEMENT >::doc_solution | ( | DocInfo & | doc_info | ) |
Doc the solution. DocInfo object stores flags/labels for where the output gets written to.
Doc the solution: doc_info contains labels/output directory etc.
Definition at line 459 of file unstructured_two_d_helmholtz.cc.
Referenced by main().
void PMLProblem< ELEMENT >::doc_solution | ( | DocInfo & | doc_info | ) |
Doc the solution. DocInfo object stores flags/labels for where the output gets written to.
|
private |
Pointer to the refineable "bulk" mesh.
Pointer to the "bulk" mesh.
Definition at line 122 of file unstructured_two_d_helmholtz.cc.
|
private |
Pointer to the "bulk" mesh.
Definition at line 129 of file unstructured_two_d_helmholtz.cc.
|
private |
Pointer to the mesh containing the Helmholtz inner boundary condition elements.
Definition at line 341 of file unstructured_two_d_helmholtz_scattering.cc.
|
private |
Pointer to mesh of elements that compute the radiated power.
Definition at line 344 of file unstructured_two_d_helmholtz_scattering.cc.
|
private |
Pointer to the bottom left corner PML mesh.
Definition at line 156 of file unstructured_two_d_helmholtz.cc.
|
private |
Pointer to the bottom PML mesh.
Definition at line 144 of file unstructured_two_d_helmholtz.cc.
|
private |
Pointer to the bottom right corner PML mesh.
Definition at line 153 of file unstructured_two_d_helmholtz.cc.
|
private |
Pointer to the left PML mesh.
Definition at line 141 of file unstructured_two_d_helmholtz.cc.
|
private |
Pointer to the right PML mesh.
Definition at line 135 of file unstructured_two_d_helmholtz.cc.
|
private |
Pointer to the top left corner PML mesh.
Definition at line 150 of file unstructured_two_d_helmholtz.cc.
|
private |
Pointer to the top PML mesh.
Definition at line 138 of file unstructured_two_d_helmholtz.cc.
|
private |
Pointer to the top right corner PML mesh.
Definition at line 147 of file unstructured_two_d_helmholtz.cc.
|
private |
Trace file.
Definition at line 159 of file unstructured_two_d_helmholtz.cc.