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

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

Inheritance diagram for PMLFourierDecomposedHelmholtzProblem< ELEMENT >:

Public Member Functions

 PMLFourierDecomposedHelmholtzProblem ()
 Constructor. More...
 
 ~PMLFourierDecomposedHelmholtzProblem ()
 Destructor (empty) More...
 
void actions_before_newton_solve ()
 Update the problem specs before solve (empty) More...
 
void actions_after_newton_solve ()
 Update the problem 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_power_monitor_mesh ()
 Create mesh of face elements that monitor the radiated power. More...
 
void actions_before_adapt ()
 Actions before adapt: Wipe the mesh of prescribed flux elements. More...
 
void actions_after_adapt ()
 Actions after adapt: Rebuild the mesh of prescribed flux elements. More...
 
void complete_problem_setup ()
 

Private Member Functions

void create_flux_elements_on_inner_boundary ()
 Create flux elements on inner boundary. More...
 
void delete_face_elements (Mesh *const &boundary_mesh_pt)
 Delete boundary face elements and wipe the surface mesh. More...
 
void apply_zero_dirichlet_boundary_conditions ()
 
void setup_point_source ()
 Set point source. More...
 

Private Attributes

Mesh * Power_monitor_mesh_pt
 Pointer to mesh that stores the power monitor elements. More...
 
RefineableTriangleMesh< ELEMENT > * Bulk_mesh_pt
 Pointer to the refineable "bulk" mesh. More...
 
MeshAsGeomObject * Mesh_as_geom_obj_pt
 Mesh as geometric object representation of bulk mesh. More...
 
TriangleMesh< ELEMENT > * Bulk_mesh_pt
 Pointer to the "bulk" mesh. More...
 
Mesh * Helmholtz_inner_boundary_mesh_pt
 Mesh of FaceElements that apply the flux bc on the inner boundary. 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_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_bottom_right_mesh_pt
 Pointer to the bottom right corner PML mesh. More...
 
ofstream Trace_file
 Trace file. More...
 

Detailed Description

template<class ELEMENT>
class PMLFourierDecomposedHelmholtzProblem< ELEMENT >

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

Problem class

Definition at line 429 of file oscillating_sphere.cc.

Constructor & Destructor Documentation

◆ PMLFourierDecomposedHelmholtzProblem()

Constructor.

Constructor for Pml Fourier-decomposed Helmholtz problem.

Setup "bulk" mesh

Definition at line 789 of file oscillating_sphere.cc.

References ProblemParameters::Directory, ProblemParameters::Element_area, and ProblemParameters::K_squared.

◆ ~PMLFourierDecomposedHelmholtzProblem()

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

Destructor (empty)

Definition at line 438 of file oscillating_sphere.cc.

Member Function Documentation

◆ actions_after_adapt()

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

Actions after adapt: Rebuild the mesh of prescribed flux elements.

Actions after adapt: Rebuild the face element meshes.

Definition at line 618 of file oscillating_sphere.cc.

◆ actions_after_newton_solve()

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

Update the problem after solve (empty)

Definition at line 444 of file oscillating_sphere.cc.

◆ actions_before_adapt()

template<class ELEMENT >
void PMLFourierDecomposedHelmholtzProblem< ELEMENT >::actions_before_adapt

Actions before adapt: Wipe the mesh of prescribed flux elements.

Actions before adapt: Wipe the mesh of face elements.

Definition at line 580 of file oscillating_sphere.cc.

◆ actions_before_newton_solve()

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

Update the problem specs before solve (empty)

Definition at line 441 of file oscillating_sphere.cc.

◆ apply_zero_dirichlet_boundary_conditions()

template<class ELEMENT >
void PMLFourierDecomposedHelmholtzProblem< ELEMENT >::apply_zero_dirichlet_boundary_conditions
private

Definition at line 731 of file oscillating_sphere.cc.

◆ complete_problem_setup()

template<class ELEMENT >
void PMLFourierDecomposedHelmholtzProblem< ELEMENT >::complete_problem_setup

◆ create_flux_elements_on_inner_boundary()

template<class ELEMENT >
void PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_flux_elements_on_inner_boundary
private

Create flux elements on inner boundary.

Definition at line 1071 of file oscillating_sphere.cc.

References ProblemParameters::exact_minus_dudr().

◆ create_pml_meshes()

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

Create PML meshes.

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

Definition at line 1110 of file oscillating_sphere.cc.

References ProblemParameters::Nel_pml, and ProblemParameters::PML_thickness.

◆ create_power_monitor_mesh()

template<class ELEMENT >
void PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_power_monitor_mesh

Create mesh of face elements that monitor the radiated power.

Create BC elements on outer boundary.

Definition at line 543 of file oscillating_sphere.cc.

◆ delete_face_elements()

template<class ELEMENT >
void PMLFourierDecomposedHelmholtzProblem< ELEMENT >::delete_face_elements ( Mesh *const &  boundary_mesh_pt)
inlineprivate

Delete boundary face elements and wipe the surface mesh.

Definition at line 476 of file oscillating_sphere.cc.

◆ doc_solution()

template<class ELEMENT >
void PMLFourierDecomposedHelmholtzProblem< 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 974 of file oscillating_sphere.cc.

References ProblemParameters::get_exact_u().

◆ setup_point_source()

template<class ELEMENT >
void PMLFourierDecomposedHelmholtzProblem< ELEMENT >::setup_point_source
private

Member Data Documentation

◆ Bulk_mesh_pt [1/2]

template<class ELEMENT >
RefineableTriangleMesh<ELEMENT>* PMLFourierDecomposedHelmholtzProblem< ELEMENT >::Bulk_mesh_pt
private

Pointer to the refineable "bulk" mesh.

Definition at line 503 of file oscillating_sphere.cc.

◆ Bulk_mesh_pt [2/2]

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

Pointer to the "bulk" mesh.

Definition at line 511 of file oscillating_sphere.cc.

◆ Helmholtz_inner_boundary_mesh_pt

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

Mesh of FaceElements that apply the flux bc on the inner boundary.

Definition at line 516 of file oscillating_sphere.cc.

◆ Mesh_as_geom_obj_pt

template<class ELEMENT >
MeshAsGeomObject* PMLFourierDecomposedHelmholtzProblem< ELEMENT >::Mesh_as_geom_obj_pt
private

Mesh as geometric object representation of bulk mesh.

Definition at line 506 of file oscillating_sphere.cc.

◆ PML_bottom_mesh_pt

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

Pointer to the bottom PML mesh.

Definition at line 525 of file oscillating_sphere.cc.

◆ PML_bottom_right_mesh_pt

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

Pointer to the bottom right corner PML mesh.

Definition at line 531 of file oscillating_sphere.cc.

◆ PML_right_mesh_pt

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

Pointer to the right PML mesh.

Definition at line 519 of file oscillating_sphere.cc.

◆ PML_top_mesh_pt

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

Pointer to the top PML mesh.

Definition at line 522 of file oscillating_sphere.cc.

◆ PML_top_right_mesh_pt

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

Pointer to the top right corner PML mesh.

Definition at line 528 of file oscillating_sphere.cc.

◆ Power_monitor_mesh_pt

template<class ELEMENT >
Mesh* PMLFourierDecomposedHelmholtzProblem< ELEMENT >::Power_monitor_mesh_pt
private

Pointer to mesh that stores the power monitor elements.

Definition at line 494 of file oscillating_sphere.cc.

◆ Trace_file

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

Trace file.

Definition at line 534 of file oscillating_sphere.cc.


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