optimus.postprocess.common
Module Contents
Classes
Functions
|
Calculate the bounding box for a set of grids. |
|
Identify the interior and exterior points w.r.t. each grid. |
|
Calculate the scattered and total pressure fields for visualisation. |
|
Calculate the scattered and total pressure fields for visualisation |
|
Calculate pressure for points near or at the boundary of a domain. When the solid |
|
To convert resolution to diagonal ppi |
|
Determine the points at the edges of the domains by computing the intersection of |
|
Convert a two-dimensional array to a format for imshow plots. |
- class optimus.postprocess.common.PostProcess(model, verbose=False)
- abstract create_computational_grid(**kwargs)
Create the grid on which to calculate the pressure field.
This function needs to be overridden by a specific postprocessing type.
- abstract compute_fields()
Calculate the pressure field in the specified locations.
This function needs to be overridden by a specific postprocessing type.
- print_parameters()
Display parameters used for visualisation.
- optimus.postprocess.common.calculate_bounding_box(domains_grids, plane_axes)
Calculate the bounding box for a set of grids.
- Parameters
- domains_gridslist optimus.Grid
The grids of the subdomains.
- plane_axestuple int
The two indices of the boundary plane. Possible values are 0,1,2 for x,y,z axes, respectively.
- Returns
- bounding_box: list float
Bounding box specifying the visualisation section on the plane_axis as a list: axis1_min, axis1_max, axis2_min, axis2_max.
- optimus.postprocess.common.find_int_ext_points(domains_grids, points, verbose)
Identify the interior and exterior points w.r.t. each grid.
- Parameters
- domains_gridslist optimus.Grid
The grids of the subdomains.
- pointsnumpy.ndarray
The field points. The size of the array should be (3,N).
- verboseboolean
Display the logs.
- Returns
- points_interiorlist numpy.ndarray
A list of numpy arrays of size (3,N), where element i of the list is an array of coordinates of the interior points for domain i, i=1,…,no_subdomains.
- points_exteriornumpy.ndarray
An array of size (3,N) with visualisation points in the exterior domain
- points_boundarylist numpy.ndarray
A list of arrays of size (3,N) with visualisation points at, or close to, grid boundaries.
- index_interiorlist numpy.ndarray
A list of arrays of size (1,N) with boolean values, identifying the interior points for each domain.
- index_exteriornumpy.ndarray
An array of size (1,N) with boolean values, identifying the exterior points.
- index_boundarylist numpy.ndarray
A list of arrays of size (1,N) with boolean values, identifying the boundary points.
- optimus.postprocess.common.compute_pressure_fields(model, points, points_exterior, index_exterior, points_interior, index_interior, points_boundary, index_boundary, verbose)
Calculate the scattered and total pressure fields for visualisation.
- Parameters
- modeloptimus.Model
A model object which has solution attributes already computed.
- pointsnumpy.ndarray
An array of size (3,N) with the visualisation points.
- points_exteriornumpy.ndarray
An array of size (3,N) with the visualisation points in the exterior domain.
- index_exteriornumpy.ndarray
An array of size (1,N) with boolean values indentifying the exterior points.
- points_interiorlist numpy.ndarray
A list of arrays of size (3,N), where element i of the list is an array of coordinates of the interior points for domain i, i=1,…,no_subdomains
- index_interiorlist numpy.ndarray
A list of arrays of size (1,N) with boolean values indentifying the interior points.
- points_boundarylist numpy.ndarray
A list of arrays of size (3,N), where element i of the list is an array of coordinates of the boundary points for domain i, i=1,…,no_subdomains
- index_boundarylist numpy.ndarray
A list of boolean arrays of size (1,N), identifying the boundary points.
- verbosebool
Display the logs.
- Returns
- total_fieldnumpy.ndarray
An array of size (1,N) with complex values of the total pressure field.
- scattered_fieldnumpy.ndarray
An array of size (1,N) with complex values of the scatterd pressure field.
- incident_exterior_fieldnumpy.ndarray
An array of size (1,N) with complex values of the incident pressure field in the exterior domain.
- optimus.postprocess.common.compute_analytical_pressure_fields(model, points, points_exterior, index_exterior, points_interior, index_interior, points_boundary, index_boundary)
Calculate the scattered and total pressure fields for visualisation in the analytical model.
- Parameters
- modeloptimus.Model
A model object which has solution attributes already computed.
- pointsnumpy.ndarray
An array of size (3,N) with the visualisation points.
- points_exteriornumpy.ndarray
An array of size (3,N) with the visualisation points in the exterior domain.
- index_exteriornumpy.ndarray
An array of size (1,N) with boolean values indentifying the exterior points.
- points_interiorlist numpy.ndarray
A list of arrays of size (3,N), where element i of the list is an array of coordinates of the interior points for domain i, i=1,…,no_subdomains
- index_interiorlist numpy.ndarray
A list of arrays of size (1,N) with boolean values indentifying the interior points.
- points_boundarylist numpy.ndarray
A list of arrays of size (3,N), where element i of the list is an array of coordinates of the boundary points for domain i, i=1,…,no_subdomains
- index_boundarylist numpy.ndarray
A list of boolean arrays of size (1,N), identifying the boundary points.
- Returns
- total_fieldnumpy.ndarray
An array of size (1,N) with complex values of the total pressure field.
- scattered_fieldnumpy.ndarray
An array of size (1,N) with complex values of the scatterd pressure field.
- incident_exterior_fieldnumpy.ndarray
An array of size (1,N) with complex values of the incident pressure field in the exterior domain.
- optimus.postprocess.common.compute_pressure_boundary(grid, boundary_points, dirichlet_solution)
Calculate pressure for points near or at the boundary of a domain. When the solid angle associated with a boundary vertex is below 0.1, it is assumed to lie on the boundary.
- Parameters
- gridbempp.api.Grid
The surface mesh of bempp.
- boundary_pointsnumpy.ndarray
An array of size (3,N) with the coordinates of vertices on the domain boundary.
- dirichlet_solutionnumpy.ndarray
An array of size (N,) with the Dirichlet component of the solution vector on the boundary.
- Returns
- total_boundary_pressurenumpy.ndarray
An array of size (N,) with complex values of the pressure field.
- optimus.postprocess.common.ppi_calculator(bounding_box, resolution)
To convert resolution to diagonal ppi
- Parameters
- bounding_boxlist float
list of min and max of the 2D plane
- resolutionlist float
list of number of points along each direction
- Returns
- resolutionfloat
resolution in ppi
- optimus.postprocess.common.domain_edge(model, plane_axes, plane_offset)
Determine the points at the edges of the domains by computing the intersection of the grid triangular elements with planes of constant x, y or z. The intersection points are then sorted by proximity to one another.
- Parameters
- modeloptimus.Model
A model object which has solution attributes already computed.
- plane_axeslist[int]
The axes of the plane.
- plane_offsetfloat
Offset of the visualisation plane defined along the third axis.
- Returns
- domains_edge_pointslist[numpy.ndarray]
list of numpy arrays of coordinates of points on the edges
- optimus.postprocess.common.array_to_imshow(field_array)
Convert a two-dimensional array to a format for imshow plots.
- Parameters
- field_arraynumpy.ndarray
The two-dimensional array with grid values.
- Returns
- field_imshownumpy.ndarray
The two-dimensional array for imshow plots.