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

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

Inheritance diagram for ScatteringProblem< ELEMENT >:

Public Member Functions

 ScatteringProblem ()
 Constructor. More...
 
 ~ScatteringProblem ()
 Destructor (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 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 actions_before_newton_convergence_check ()
 Recompute gamma integral before checking Newton residuals. 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 create_outer_bc_elements (const unsigned &b, Mesh *const &bulk_mesh_pt, Mesh *const &helmholtz_outer_boundary_mesh_pt)
 Create BC elements on boundary b of the Mesh pointed to by bulk_mesh_pt and add them to the specified survace Mesh. 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 delete_face_elements (Mesh *const &boundary_mesh_pt)
 Delete boundary face elements and wipe the surface mesh. More...
 
void set_prescribed_incoming_flux_pt ()
 Set pointer to prescribed-flux function for all elements in the surface mesh on the surface of the unit disk. More...
 
void setup_outer_boundary ()
 Set up boundary condition elements on outer boundary. More...
 
 ScatteringProblem ()
 Constructor. More...
 
 ~ScatteringProblem ()
 Destructor (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 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 actions_before_newton_convergence_check ()
 Recompute gamma integral before checking Newton residuals. 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 create_outer_bc_elements (const unsigned &b, Mesh *const &bulk_mesh_pt, Mesh *const &helmholtz_outer_boundary_mesh_pt)
 Create BC elements on boundary b of the Mesh pointed to by bulk_mesh_pt and add them to the specified survace Mesh. 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 delete_face_elements (Mesh *const &boundary_mesh_pt)
 Delete boundary face elements and wipe the surface mesh. More...
 
void set_prescribed_incoming_flux_pt ()
 Set pointer to prescribed-flux function for all elements in the surface mesh on the surface of the unit disk. More...
 
void setup_outer_boundary ()
 Set up boundary condition elements on outer boundary. More...
 

Public Attributes

RefineableTwoDAnnularMesh< ELEMENT > * Bulk_mesh_pt
 Pointer to the "bulk" mesh. More...
 
TwoDAnnularMesh< ELEMENT > * Bulk_mesh_pt
 Pointer to the "bulk" mesh. More...
 
HelmholtzDtNMesh< ELEMENT > * Helmholtz_outer_boundary_mesh_pt
 Pointer to mesh containing the DtN (or ABC) boundary condition elements. More...
 
Mesh * Helmholtz_inner_boundary_mesh_pt
 Pointer to the mesh containing the Helmholtz inner boundary condition elements. More...
 
RefineableTriangleMesh< ELEMENT > * Bulk_mesh_pt
 Pointer to the "bulk" mesh. More...
 
TriangleMesh< ELEMENT > * Bulk_mesh_pt
 Pointer to the "bulk" mesh. More...
 
ofstream Trace_file
 Trace file. More...
 

Detailed Description

template<class ELEMENT>
class ScatteringProblem< ELEMENT >

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

Problem class to compute scattering of planar wave from unit disk

Definition at line 222 of file scattering.cc.

Constructor & Destructor Documentation

◆ ScatteringProblem() [1/2]

template<class ELEMENT >
ScatteringProblem< ELEMENT >::ScatteringProblem

Constructor.

Constructor for Helmholtz problem.

Definition at line 307 of file scattering.cc.

References GlobalParameters::K_squared, GlobalParameters::N_fourier, and GlobalParameters::Outer_radius.

◆ ~ScatteringProblem() [1/2]

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

Destructor (empty)

Definition at line 231 of file scattering.cc.

◆ ScatteringProblem() [2/2]

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

Constructor.

◆ ~ScatteringProblem() [2/2]

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

Destructor (empty)

Definition at line 230 of file unstructured_scattering.cc.

Member Function Documentation

◆ actions_after_adapt() [1/2]

template<class ELEMENT >
void ScatteringProblem< 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 429 of file scattering.cc.

◆ actions_after_adapt() [2/2]

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

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

◆ actions_after_newton_solve() [1/2]

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

Update the problem specs after solve (empty)

Definition at line 241 of file scattering.cc.

◆ actions_after_newton_solve() [2/2]

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

Update the problem specs after solve (empty)

Definition at line 240 of file unstructured_scattering.cc.

◆ actions_before_adapt() [1/2]

template<class ELEMENT >
void ScatteringProblem< 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 413 of file scattering.cc.

◆ actions_before_adapt() [2/2]

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

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

◆ actions_before_newton_convergence_check() [1/2]

template<class ELEMENT >
void ScatteringProblem< ELEMENT >::actions_before_newton_convergence_check ( )
inline

Recompute gamma integral before checking Newton residuals.

Definition at line 244 of file scattering.cc.

References GlobalParameters::DtN_BC.

◆ actions_before_newton_convergence_check() [2/2]

template<class ELEMENT >
void ScatteringProblem< ELEMENT >::actions_before_newton_convergence_check ( )
inline

Recompute gamma integral before checking Newton residuals.

Definition at line 243 of file unstructured_scattering.cc.

References GlobalParameters::DtN_BC.

◆ actions_before_newton_solve() [1/2]

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

Update the problem specs before solve (empty)

Definition at line 238 of file scattering.cc.

◆ actions_before_newton_solve() [2/2]

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

Update the problem specs before solve (empty)

Definition at line 237 of file unstructured_scattering.cc.

◆ create_flux_elements() [1/2]

template<class ELEMENT >
void ScatteringProblem< 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 610 of file scattering.cc.

◆ create_flux_elements() [2/2]

template<class ELEMENT >
void ScatteringProblem< 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_outer_bc_elements() [1/2]

template<class ELEMENT >
void ScatteringProblem< ELEMENT >::create_outer_bc_elements ( const unsigned &  b,
Mesh *const &  bulk_mesh_pt,
Mesh *const &  helmholtz_outer_boundary_mesh_pt 
)

Create BC elements on boundary b of the Mesh pointed to by bulk_mesh_pt and add them to the specified survace Mesh.

Create outer BC 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_outer_boundary_mesh_pt.

Definition at line 644 of file scattering.cc.

References GlobalParameters::DtN_BC.

◆ create_outer_bc_elements() [2/2]

template<class ELEMENT >
void ScatteringProblem< ELEMENT >::create_outer_bc_elements ( const unsigned &  b,
Mesh *const &  bulk_mesh_pt,
Mesh *const &  helmholtz_outer_boundary_mesh_pt 
)

Create BC elements on boundary b of the Mesh pointed to by bulk_mesh_pt and add them to the specified survace Mesh.

◆ delete_face_elements() [1/2]

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

Delete boundary face elements and wipe the surface mesh.

Delete face elements and wipe the boundary mesh.

Definition at line 687 of file scattering.cc.

◆ delete_face_elements() [2/2]

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

Delete boundary face elements and wipe the surface mesh.

◆ doc_solution() [1/2]

template<class ELEMENT >
void ScatteringProblem< 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 516 of file scattering.cc.

References GlobalParameters::get_exact_u().

Referenced by main().

◆ doc_solution() [2/2]

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

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

◆ set_prescribed_incoming_flux_pt() [1/2]

template<class ELEMENT >
void ScatteringProblem< ELEMENT >::set_prescribed_incoming_flux_pt

Set pointer to prescribed-flux function for all elements in the surface mesh on the surface of the unit disk.

Set pointer to prescribed incoming-flux function for all elements in the inner boundary.

Definition at line 493 of file scattering.cc.

References GlobalParameters::prescribed_incoming_flux().

◆ set_prescribed_incoming_flux_pt() [2/2]

template<class ELEMENT >
void ScatteringProblem< ELEMENT >::set_prescribed_incoming_flux_pt ( )

Set pointer to prescribed-flux function for all elements in the surface mesh on the surface of the unit disk.

◆ setup_outer_boundary() [1/2]

template<class ELEMENT >
void ScatteringProblem< ELEMENT >::setup_outer_boundary

Set up boundary condition elements on outer boundary.

Set pointers for elements on outer boundary.

Definition at line 451 of file scattering.cc.

References GlobalParameters::ABC_order, GlobalParameters::DtN_BC, and GlobalParameters::Outer_radius.

◆ setup_outer_boundary() [2/2]

template<class ELEMENT >
void ScatteringProblem< ELEMENT >::setup_outer_boundary ( )

Set up boundary condition elements on outer boundary.

Member Data Documentation

◆ Bulk_mesh_pt [1/4]

template<class ELEMENT >
RefineableTwoDAnnularMesh<ELEMENT>* ScatteringProblem< ELEMENT >::Bulk_mesh_pt

Pointer to the "bulk" mesh.

Definition at line 282 of file scattering.cc.

◆ Bulk_mesh_pt [2/4]

template<class ELEMENT >
TwoDAnnularMesh<ELEMENT>* ScatteringProblem< ELEMENT >::Bulk_mesh_pt

Pointer to the "bulk" mesh.

Definition at line 287 of file scattering.cc.

◆ Bulk_mesh_pt [3/4]

template<class ELEMENT >
RefineableTriangleMesh<ELEMENT>* ScatteringProblem< ELEMENT >::Bulk_mesh_pt

Pointer to the "bulk" mesh.

Definition at line 281 of file unstructured_scattering.cc.

◆ Bulk_mesh_pt [4/4]

template<class ELEMENT >
TriangleMesh<ELEMENT>* ScatteringProblem< ELEMENT >::Bulk_mesh_pt

Pointer to the "bulk" mesh.

Definition at line 286 of file unstructured_scattering.cc.

◆ Helmholtz_inner_boundary_mesh_pt

template<class ELEMENT >
Mesh * ScatteringProblem< ELEMENT >::Helmholtz_inner_boundary_mesh_pt

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

Definition at line 297 of file scattering.cc.

◆ Helmholtz_outer_boundary_mesh_pt

template<class ELEMENT >
HelmholtzDtNMesh< ELEMENT > * ScatteringProblem< ELEMENT >::Helmholtz_outer_boundary_mesh_pt

Pointer to mesh containing the DtN (or ABC) boundary condition elements.

Definition at line 293 of file scattering.cc.

◆ Trace_file

template<class ELEMENT >
ofstream ScatteringProblem< ELEMENT >::Trace_file

Trace file.

Definition at line 299 of file unstructured_scattering.cc.


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