#include <Rocsurf.h>


Public Member Functions | |
| Rocsurf () | |
| virtual | ~Rocsurf () |
| virtual Window_manifold_2 * | manifold () |
| Obtain a reference to the manifold. More... | |
| void | initialize (const COM::Attribute *pmesh) |
| Constructs the communication patterns of a distributed mesh. More... | |
| void | compute_normals (const COM::Attribute *mesh, COM::Attribute *nrm, const int *scheme=NULL) |
| Computes nodal or elemental normals of a given window. More... | |
| void | compute_mcn (COM::Attribute *mcn, COM::Attribute *lbmcn) |
| Computes nodal or elemental normals of a given window. More... | |
| void | serialize_mesh (const COM::Attribute *inmesh, COM::Attribute *outmesh) |
| Serialize the mesh of a given window. More... | |
| void | compute_edge_lengths (double *lave, double *lmin, double *lmax) |
| Computes edge lengths of a given window. More... | |
| void | elements_to_nodes (const COM::Attribute *elem_vals, COM::Attribute *nodal_vals, const COM::Attribute *mesh=NULL, const int *scheme=NULL, const COM::Attribute *elem_weights=NULL, COM::Attribute *nodal_weights=NULL) |
| Computes nodal or elemental normals of a given window. More... | |
Static Public Member Functions | |
| static void | load (const std::string &mname) |
| Loads Rocsurf onto Roccom with a given module name. More... | |
| static void | unload (const std::string &mname) |
| Unloads Rocsurf from Roccom. More... | |
| static void | interpolate_to_centers (const COM::Attribute *x, COM::Attribute *z) |
| Interpolates nodal coordinates to element centers. More... | |
| static void | integrate (const COM::Attribute *x, double *z) |
| Integrate a function given by an elemental attribute over surface z is an array of size equal to number of components of x. More... | |
| static void | compute_element_areas (COM::Attribute *areas, const COM::Attribute *pnts=NULL) |
| Computes the area of each face of the surface mesh of window areas->window and saves the results in attribute areas. More... | |
| static void | compute_element_normals (COM::Attribute *nrm, const int *to_normalize=NULL, const COM::Attribute *pnts=NULL) |
| Computes elemental normals of a given window. More... | |
| static void | compute_bounded_volumes (const COM::Attribute *old_location, const COM::Attribute *new_location, COM::Attribute *volumes, void *flag=NULL) |
| Computes the volume bounded between two different locations of each face of the surface mesh of window volumes->window. More... | |
| static void | compute_swept_volumes (const COM::Attribute *location, const COM::Attribute *disps, COM::Attribute *volumes, void *flag=NULL) |
| Computes the swept volume by a given displacement of each face of the surface mesh of window volumes->window. More... | |
| static void | compute_center (const COM::Attribute *mesh, Vector_3< double > &cnt) |
| Computes the center of a body. More... | |
| static void | compute_signed_volumes (const COM::Attribute *mesh, double *vol) |
| Computes the signed volume of a body. More... | |
Protected Types | |
| enum | { SURF_COOKIE =7627873 } |
Protected Member Functions | |
| int | validate_object () const |
Static Protected Member Functions | |
| template<class T > | |
| static void | normalize (T *a, int size) throw (int) |
Protected Attributes | |
| Window_manifold_2 * | _wm |
| int | _cookie |
Static Protected Attributes | |
| static const int | scheme_vals [] = {E2N_USER, E2N_ONE, E2N_AREA, E2N_ANGLE} |
|
protected |
|
inline |
Definition at line 44 of file Rocsurf.h.
Referenced by load().

|
static |
Computes the volume bounded between two different locations of each face of the surface mesh of window volumes->window.
Typically, the two locations of the surface correspond to the surface at two different snapshots of a simulation.
| old_location | stores the old nodal coordinates. |
| new_location | stores the new nodal coordinates. |
| volumes | stores the bounded volume for each element. |
| If | flag is present, then only compute volume for elements whose corresponding value of the volume attribute was set to nonzero value. |
Definition at line 108 of file compute_bounded_volumes.C.
References arrange(), get_face_volume(), i, j, Element_node_enumerator::next(), normalize_coor(), Element_node_vectors_k_const< Value >::set(), Element_node_enumerator::size_of_edges(), and volume().
Referenced by load().


|
static |
Computes the center of a body.
Definition at line 291 of file compute_bounded_volumes.C.
References COM_NC, COMMPI_Initialized(), i, j, and MPI_SUM.
Referenced by compute_signed_volumes().


| void compute_edge_lengths | ( | double * | lave, |
| double * | lmin, | ||
| double * | lmax | ||
| ) |
Computes edge lengths of a given window.
Definition at line 87 of file Rocsurf.C.
References _wm, ACROSS_PANE, COMMPI_Initialized(), i, iend, Halfedge::is_border(), max(), min(), MPI_MAX, MPI_MIN, MPI_SUM, Halfedge::next(), Vector_3< Type >::norm(), Halfedge::opposite(), Window_manifold_2::pm_begin(), Window_manifold_2::pm_end(), Halfedge::tangent(), and Window_manifold_2::window().
Referenced by load(), and Rocprop::load().


|
static |
Computes the area of each face of the surface mesh of window areas->window and saves the results in attribute areas.
If pnts is present, then use it in place of the nodal coordinates
Definition at line 41 of file compute_element_areas.C.
References COM_assertion, COM_assertion_msg, COM_compatible_types(), COM_DOUBLE, COM_NC, i, j, k, Element_node_enumerator::next(), Element_node_vectors_k_const< Value >::set(), Element_node_enumerator::size_of_edges(), and Element_node_enumerator::size_of_nodes().
Referenced by load().


|
static |
Computes elemental normals of a given window.
Normalize the normals if to_normalize is NULL (default) or its value is nonzero. If pnts is present, then use it in place of the nodal coordinates
Definition at line 32 of file compute_element_normals.C.
References COM_assertion, COM_NC, Vector_3< Type >::cross_product(), i, j, Element_node_enumerator::next(), Vector_3< Type >::normalize(), Element_node_vectors_k_const< Value >::set(), Element_node_enumerator::size_of_edges(), and Element_node_enumerator::size_of_nodes().
Referenced by Window_manifold_2::compute_nodal_normals(), Window_manifold_2::compute_normals(), and load().


| void compute_mcn | ( | COM::Attribute * | mcn, |
| COM::Attribute * | lbmcn | ||
| ) |
Computes nodal or elemental normals of a given window.
Definition at line 63 of file Rocsurf.C.
References _wm, COM_assertion_msg, Window_manifold_2::compute_mcn(), and validate_object().
Referenced by load().


| void compute_normals | ( | const COM::Attribute * | mesh, |
| COM::Attribute * | nrm, | ||
| const int * | scheme = NULL |
||
| ) |
Computes nodal or elemental normals of a given window.
Definition at line 49 of file Rocsurf.C.
References _wm, COM_assertion_msg, Window_manifold_2::compute_normals(), initialize(), and validate_object().
Referenced by load().


|
static |
Computes the signed volume of a body.
Definition at line 329 of file compute_bounded_volumes.C.
References COM_NC, compute_center(), get_face_volume(), i, j, Element_node_enumerator::next(), Element_node_vectors_k_const< Value >::set(), and Element_node_enumerator::size_of_edges().
Referenced by load().


|
static |
Computes the swept volume by a given displacement of each face of the surface mesh of window volumes->window.
| old_location | stores the nodal coordinates. |
| disps | stores the nodal displacement. |
| volumes | stores the swept volume for each element. |
| If | flag is present, then only compute volume for elements whose corresponding value of the volume attribute was set to nonzero value. |
Definition at line 199 of file compute_bounded_volumes.C.
References arrange(), get_face_volume(), i, j, Element_node_enumerator::next(), normalize_coor(), Element_node_vectors_k_const< Value >::set(), Element_node_enumerator::size_of_edges(), and volume().
Referenced by load().


| void elements_to_nodes | ( | const COM::Attribute * | elem_vals, |
| COM::Attribute * | nodal_vals, | ||
| const COM::Attribute * | mesh = NULL, |
||
| const int * | scheme = NULL, |
||
| const COM::Attribute * | elem_weights = NULL, |
||
| COM::Attribute * | nodal_weights = NULL |
||
| ) |
Computes nodal or elemental normals of a given window.
Definition at line 72 of file Rocsurf.C.
References _wm, COM_assertion_msg, E2N_AREA, Window_manifold_2::elements_to_nodes(), initialize(), and validate_object().
Referenced by load().


| void initialize | ( | const COM::Attribute * | pmesh | ) |
Constructs the communication patterns of a distributed mesh.
If the input is pmesh, then use the given pconn. Otherwise, compute pconn.
Definition at line 35 of file Rocsurf.C.
References _wm, COM_assertion_msg, COM_MESH, COM_PMESH, Window_manifold_2::init_communicator(), and validate_object().
Referenced by compute_normals(), elements_to_nodes(), Rocprop::initialize(), load(), serialize_mesh(), and Rocmop::smoother_specific_init().


|
static |
Integrate a function given by an elemental attribute over surface z is an array of size equal to number of components of x.
Definition at line 88 of file compute_element_areas.C.
References COM_assertion, COM_assertion_msg, COM_compatible_types(), COM_DOUBLE, COM_NC, COMMPI_Initialized(), copy, i, j, k, MPI_SUM, Element_node_enumerator::next(), Element_node_vectors_k_const< Value >::set(), Element_node_enumerator::size_of_edges(), and Element_node_enumerator::size_of_nodes().
Referenced by load().


|
static |
Interpolates nodal coordinates to element centers.
Definition at line 100 of file interpolate_to_centers.C.
References COM_DOUBLE, COM_DOUBLE_PRECISION, i, and j.
Referenced by load().

|
static |
Loads Rocsurf onto Roccom with a given module name.
Definition at line 139 of file Rocsurf.C.
References COM_DOUBLE, COM_INT, COM_INTEGER, COM_METADATA, COM_new_attribute(), COM_new_window(), COM_RAWDATA, COM_set_array_const(), COM_set_function(), COM_set_member_function(), COM_set_object(), COM_VOID, COM_window_init_done(), compute_bounded_volumes(), compute_edge_lengths(), compute_element_areas(), compute_element_normals(), compute_mcn(), compute_normals(), compute_signed_volumes(), compute_swept_volumes(), E2N_ANGLE, E2N_AREA, E2N_ONE, E2N_USER, elements_to_nodes(), initialize(), integrate(), interpolate_to_centers(), Rocsurf(), scheme_vals, and serialize_mesh().
Referenced by Rocsurf_load_module(), rocsurf_load_module(), ROCSURF_LOAD_MODULE(), rocsurf_load_module_(), and ROCSURF_LOAD_MODULE_().


|
inlinevirtual |
|
inlinestaticprotected | ||||||||||||||||||||
| void serialize_mesh | ( | const COM::Attribute * | inmesh, |
| COM::Attribute * | outmesh | ||
| ) |
Serialize the mesh of a given window.
Definition at line 128 of file Rocsurf.C.
References _wm, COM_assertion_msg, initialize(), Window_manifold_2::serialize_window(), and validate_object().
Referenced by load().


|
static |
Unloads Rocsurf from Roccom.
Definition at line 219 of file Rocsurf.C.
References COM_delete_window(), and COM_get_object().
Referenced by Rocsurf_unload_module(), rocsurf_unload_module(), ROCSURF_UNLOAD_MODULE(), rocsurf_unload_module_(), and ROCSURF_UNLOAD_MODULE_().


|
inlineprotected |
Definition at line 156 of file Rocsurf.h.
References _cookie, and SURF_COOKIE.
Referenced by compute_mcn(), compute_normals(), elements_to_nodes(), initialize(), serialize_mesh(), and Rocprop::validate_object().

|
protected |
Definition at line 165 of file Rocsurf.h.
Referenced by validate_object().
|
protected |
Definition at line 163 of file Rocsurf.h.
Referenced by compute_edge_lengths(), compute_mcn(), compute_normals(), elements_to_nodes(), initialize(), manifold(), serialize_mesh(), and ~Rocsurf().
|
staticprotected |