Public Member Functions | Private Attributes | List of all members
PMLProblem< ELEMENT > Class Template Reference

////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// More...

Inheritance diagram for PMLProblem< ELEMENT >:

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...
 

Detailed Description

template<class ELEMENT>
class PMLProblem< ELEMENT >

////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////

Problem class to demonstrate use of perfectly matched layers for Helmholtz problems.

Definition at line 75 of file unstructured_two_d_helmholtz.cc.

Constructor & Destructor Documentation

◆ PMLProblem() [1/2]

template<class ELEMENT >
PMLProblem< ELEMENT >::PMLProblem

Constructor.

Constructor for Helmholtz problem.

Definition at line 165 of file unstructured_two_d_helmholtz.cc.

References GlobalParameters::K_squared.

◆ ~PMLProblem() [1/2]

template<class ELEMENT >
PMLProblem< ELEMENT >::~PMLProblem ( )
inline

Destructor (empty)

Definition at line 84 of file unstructured_two_d_helmholtz.cc.

◆ PMLProblem() [2/2]

template<class ELEMENT >
PMLProblem< ELEMENT >::PMLProblem ( )

Constructor.

◆ ~PMLProblem() [2/2]

template<class ELEMENT >
PMLProblem< ELEMENT >::~PMLProblem ( )
inline

Destructor (empty)

Definition at line 251 of file unstructured_two_d_helmholtz_scattering.cc.

Member Function Documentation

◆ actions_after_adapt() [1/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::actions_after_adapt

Actions after adapt: Rebuild the PML meshes.

Actions after adapt: Rebuild the face element meshes.

Definition at line 386 of file unstructured_two_d_helmholtz.cc.

References GlobalParameters::K_squared.

◆ actions_after_adapt() [2/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::actions_after_adapt ( )

Actions after adapt: Rebuild the PML meshes.

◆ actions_after_newton_solve() [1/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::actions_after_newton_solve ( )
inline

Update the problem specs after solve (empty)

Definition at line 90 of file unstructured_two_d_helmholtz.cc.

◆ actions_after_newton_solve() [2/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::actions_after_newton_solve ( )
inline

Update the problem specs after solve (empty)

Definition at line 257 of file unstructured_two_d_helmholtz_scattering.cc.

◆ actions_before_adapt() [1/2]

template<class ELEMENT >
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 346 of file unstructured_two_d_helmholtz.cc.

◆ actions_before_adapt() [2/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::actions_before_adapt ( )

Actions before adapt: Wipe the PML meshes.

◆ actions_before_newton_solve() [1/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::actions_before_newton_solve ( )
inline

Update the problem specs before solve (empty)

Definition at line 87 of file unstructured_two_d_helmholtz.cc.

◆ actions_before_newton_solve() [2/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::actions_before_newton_solve ( )
inline

Update the problem specs before solve (empty)

Definition at line 254 of file unstructured_two_d_helmholtz_scattering.cc.

◆ apply_boundary_conditions()

template<class ELEMENT >
void PMLProblem< ELEMENT >::apply_boundary_conditions

Apply boundary conditions.

Definition at line 422 of file unstructured_two_d_helmholtz.cc.

◆ create_flux_elements()

template<class ELEMENT >
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 747 of file unstructured_two_d_helmholtz_scattering.cc.

References GlobalParameters::prescribed_incoming_flux().

◆ create_pml_meshes() [1/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::create_pml_meshes

Create PML meshes.

Create PML meshes and add them to the problem's sub-meshes.

Definition at line 530 of file unstructured_two_d_helmholtz.cc.

◆ create_pml_meshes() [2/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::create_pml_meshes ( )

Create PML meshes.

◆ create_power_elements()

template<class ELEMENT >
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 783 of file unstructured_two_d_helmholtz_scattering.cc.

◆ doc_solution() [1/2]

template<class ELEMENT >
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 453 of file unstructured_two_d_helmholtz.cc.

Referenced by main().

◆ doc_solution() [2/2]

template<class ELEMENT >
void PMLProblem< ELEMENT >::doc_solution ( DocInfo &  doc_info)

Doc the solution. DocInfo object stores flags/labels for where the output gets written to.

Member Data Documentation

◆ Bulk_mesh_pt [1/2]

template<class ELEMENT >
TriangleMesh< ELEMENT > * PMLProblem< ELEMENT >::Bulk_mesh_pt
private

Pointer to the refineable "bulk" mesh.

Pointer to the "bulk" mesh.

Definition at line 118 of file unstructured_two_d_helmholtz.cc.

◆ Bulk_mesh_pt [2/2]

template<class ELEMENT >
TriangleMesh<ELEMENT>* PMLProblem< ELEMENT >::Bulk_mesh_pt
private

Pointer to the "bulk" mesh.

Definition at line 125 of file unstructured_two_d_helmholtz.cc.

◆ Helmholtz_inner_boundary_mesh_pt

template<class ELEMENT >
Mesh* PMLProblem< ELEMENT >::Helmholtz_inner_boundary_mesh_pt
private

Pointer to the mesh containing the Helmholtz inner boundary condition elements.

Definition at line 332 of file unstructured_two_d_helmholtz_scattering.cc.

◆ Helmholtz_power_boundary_mesh_pt

template<class ELEMENT >
Mesh* PMLProblem< ELEMENT >::Helmholtz_power_boundary_mesh_pt
private

Pointer to mesh of elements that compute the radiated power.

Definition at line 335 of file unstructured_two_d_helmholtz_scattering.cc.

◆ PML_bottom_left_mesh_pt

template<class ELEMENT >
Mesh * PMLProblem< ELEMENT >::PML_bottom_left_mesh_pt
private

Pointer to the bottom left corner PML mesh.

Definition at line 152 of file unstructured_two_d_helmholtz.cc.

◆ PML_bottom_mesh_pt

template<class ELEMENT >
Mesh * PMLProblem< ELEMENT >::PML_bottom_mesh_pt
private

Pointer to the bottom PML mesh.

Definition at line 140 of file unstructured_two_d_helmholtz.cc.

◆ PML_bottom_right_mesh_pt

template<class ELEMENT >
Mesh * PMLProblem< ELEMENT >::PML_bottom_right_mesh_pt
private

Pointer to the bottom right corner PML mesh.

Definition at line 149 of file unstructured_two_d_helmholtz.cc.

◆ PML_left_mesh_pt

template<class ELEMENT >
Mesh * PMLProblem< ELEMENT >::PML_left_mesh_pt
private

Pointer to the left PML mesh.

Definition at line 137 of file unstructured_two_d_helmholtz.cc.

◆ PML_right_mesh_pt

template<class ELEMENT >
Mesh * PMLProblem< ELEMENT >::PML_right_mesh_pt
private

Pointer to the right PML mesh.

Definition at line 131 of file unstructured_two_d_helmholtz.cc.

◆ PML_top_left_mesh_pt

template<class ELEMENT >
Mesh * PMLProblem< ELEMENT >::PML_top_left_mesh_pt
private

Pointer to the top left corner PML mesh.

Definition at line 146 of file unstructured_two_d_helmholtz.cc.

◆ PML_top_mesh_pt

template<class ELEMENT >
Mesh * PMLProblem< ELEMENT >::PML_top_mesh_pt
private

Pointer to the top PML mesh.

Definition at line 134 of file unstructured_two_d_helmholtz.cc.

◆ PML_top_right_mesh_pt

template<class ELEMENT >
Mesh * PMLProblem< ELEMENT >::PML_top_right_mesh_pt
private

Pointer to the top right corner PML mesh.

Definition at line 143 of file unstructured_two_d_helmholtz.cc.

◆ Trace_file

template<class ELEMENT >
ofstream PMLProblem< ELEMENT >::Trace_file
private

Trace file.

Definition at line 155 of file unstructured_two_d_helmholtz.cc.


The documentation for this class was generated from the following files: