IBAMR  IBAMR version 0.19.
Classes | Namespaces | Typedefs | Functions
libmesh_utilities.h File Reference
#include <ibtk/config.h>
#include "ibtk/IBTK_CHKERRQ.h"
#include "ibtk/ibtk_utilities.h"
#include "tbox/Utilities.h"
#include "libmesh/bounding_box.h"
#include "libmesh/dof_map.h"
#include "libmesh/dof_object.h"
#include "libmesh/edge.h"
#include "libmesh/equation_systems.h"
#include "libmesh/face.h"
#include "libmesh/fe.h"
#include "libmesh/libmesh_config.h"
#include "libmesh/libmesh_version.h"
#include "libmesh/petsc_vector.h"
#include "libmesh/point.h"
#include "libmesh/quadrature_gauss.h"
#include "libmesh/string_to_enum.h"
#include "libmesh/type_tensor.h"
#include "libmesh/type_vector.h"
#include "libmesh/vector_value.h"
#include <boost/multi_array.hpp>
#include <array>
#include <tuple>

Classes

struct  IBTK::SystemData
 
struct  IBTK::DofObjectComp
 

Namespaces

 IBTK
 
 IBTK::libMeshWrappers
 

Typedefs

using IBTK::quadrature_key_type = std::tuple< libMesh::ElemType, libMesh::QuadratureType, libMesh::Order, bool >
 
using IBTK::libMeshWrappers::BoundingBox = libMesh::BoundingBox
 
using IBTK::ScalarMeshFcnPtr = void(*)(double &F, const libMesh::TensorValue< double > &FF, const libMesh::Point &x, const libMesh::Point &X, libMesh::Elem *elem, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &system_grad_var_data, double data_time, void *ctx)
 
using IBTK::VectorMeshFcnPtr = void(*)(libMesh::VectorValue< double > &F, const libMesh::TensorValue< double > &FF, const libMesh::Point &x, const libMesh::Point &X, libMesh::Elem *elem, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &system_grad_var_data, double data_time, void *ctx)
 
using IBTK::TensorMeshFcnPtr = void(*)(libMesh::TensorValue< double > &F, const libMesh::TensorValue< double > &FF, const libMesh::Point &x, const libMesh::Point &X, libMesh::Elem *elem, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &system_grad_var_data, double data_time, void *ctx)
 
using IBTK::ScalarSurfaceFcnPtr = void(*)(double &F, const libMesh::VectorValue< double > &n, const libMesh::VectorValue< double > &N, const libMesh::TensorValue< double > &FF, const libMesh::Point &x, const libMesh::Point &X, libMesh::Elem *elem, unsigned short int side, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &system_grad_var_data, double data_time, void *ctx)
 
using IBTK::VectorSurfaceFcnPtr = void(*)(libMesh::VectorValue< double > &F, const libMesh::VectorValue< double > &n, const libMesh::VectorValue< double > &N, const libMesh::TensorValue< double > &FF, const libMesh::Point &x, const libMesh::Point &X, libMesh::Elem *elem, unsigned short int side, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &system_grad_var_data, double data_time, void *ctx)
 
using IBTK::TensorSurfaceFcnPtr = void(*)(libMesh::TensorValue< double > &F, const libMesh::VectorValue< double > &n, const libMesh::VectorValue< double > &N, const libMesh::TensorValue< double > &FF, const libMesh::Point &x, const libMesh::Point &X, libMesh::Elem *elem, unsigned short int side, const std::vector< const std::vector< double > * > &system_var_data, const std::vector< const std::vector< libMesh::VectorValue< double > > * > &system_grad_var_data, double data_time, void *ctx)
 

Functions

int IBTK::get_dim (const libMesh::ElemType elem_type)
 
std::size_t IBTK::get_n_nodes (const libMesh::ElemType elem_type)
 
libMesh::Order IBTK::get_default_order (const libMesh::ElemType elem_type)
 
void IBTK::copy_and_synch (libMesh::NumericVector< double > &v_in, libMesh::NumericVector< double > &v_out, const bool close_v_in=true, const bool close_v_out=true)
 
void IBTK::batch_vec_copy (const std::vector< libMesh::PetscVector< double > * > &x_vecs, const std::vector< libMesh::PetscVector< double > * > &y_vecs)
 
void IBTK::batch_vec_copy (const std::vector< std::vector< libMesh::PetscVector< double > * > > &x_vecs, const std::vector< std::vector< libMesh::PetscVector< double > * > > &y_vecs)
 
void IBTK::batch_vec_assembly (const std::vector< libMesh::PetscVector< double > * > &vecs)
 
void IBTK::batch_vec_assembly (const std::vector< std::vector< libMesh::PetscVector< double > * > > &vecs)
 
void IBTK::batch_vec_ghost_update (const std::vector< libMesh::PetscVector< double > * > &vecs, const InsertMode insert_mode, const ScatterMode scatter_mode)
 
void IBTK::batch_vec_ghost_update (const std::vector< std::vector< libMesh::PetscVector< double > * > > &vecs, const InsertMode insert_mode, const ScatterMode scatter_mode)
 
void IBTK::setup_system_vectors (libMesh::EquationSystems *equation_systems, const std::vector< std::string > &system_names, const std::vector< std::string > &vector_names, const bool from_restart)
 
void IBTK::setup_system_vector (libMesh::System &system, const std::string &vector_name, const bool from_restart)
 
void IBTK::copy_dof_ids_to_vector (const unsigned int var_n, const boost::multi_array< libMesh::dof_id_type, 2 > &elem_dofs, std::vector< libMesh::dof_id_type > &dofs)
 
void IBTK::apply_transposed_constraint_matrix (const libMesh::DofMap &dof_map, libMesh::PetscVector< double > &rhs)
 
quadrature_key_type IBTK::getQuadratureKey (libMesh::QuadratureType quad_type, libMesh::Order order, bool use_adaptive_quadrature, double point_density, bool allow_rules_with_negative_weights, const libMesh::Elem *elem, const boost::multi_array< double, 2 > &X_node, double dx_min)
 
template<class MultiArray , class Array >
void IBTK::get_values_for_interpolation (MultiArray &U_node, const libMesh::PetscVector< double > &U_petsc_vec, const Array &U_local_soln, const std::vector< unsigned int > &dof_indices)
 
template<class MultiArray_1 , class MultiArray_2 , class Array >
void IBTK::get_values_for_interpolation (MultiArray_1 &U_node, const libMesh::PetscVector< double > &U_petsc_vec, const Array &U_local_soln, const MultiArray_2 &dof_indices)
 
template<class MultiArray >
void IBTK::get_values_for_interpolation (MultiArray &U_node, libMesh::NumericVector< double > &U_vec, const std::vector< unsigned int > &dof_indices)
 
template<class MultiArray_1 , class MultiArray_2 >
void IBTK::get_values_for_interpolation (MultiArray_1 &U_node, libMesh::NumericVector< double > &U_vec, const MultiArray_2 &dof_indices)
 
template<class MultiArray >
void IBTK::interpolate (double &U, const int qp, const MultiArray &U_node, const std::vector< std::vector< double > > &phi)
 
template<class MultiArray >
double IBTK::interpolate (const int qp, const MultiArray &U_node, const std::vector< std::vector< double > > &phi)
 
template<class MultiArray >
void IBTK::interpolate (double *const U, const int qp, const MultiArray &U_node, const std::vector< std::vector< double > > &phi)
 
template<class MultiArray >
void IBTK::interpolate (libMesh::TypeVector< double > &U, const int qp, const MultiArray &U_node, const std::vector< std::vector< double > > &phi)
 
template<class MultiArray >
void IBTK::jacobian (libMesh::TypeTensor< double > &dX_ds, const int qp, const MultiArray &X_node, const std::vector< std::vector< libMesh::VectorValue< double > > > &dphi)
 
void IBTK::tensor_inverse (libMesh::TensorValue< double > &A_inv, const libMesh::TensorValue< double > &A, const int dim=NDIM)
 
libMesh::TensorValue< doubleIBTK::tensor_inverse (const libMesh::TensorValue< double > &A, const int dim=NDIM)
 
void IBTK::tensor_inverse_transpose (libMesh::TensorValue< double > &A_inv_trans, const libMesh::TensorValue< double > &A, const int dim=NDIM)
 
libMesh::TensorValue< doubleIBTK::tensor_inverse_transpose (const libMesh::TensorValue< double > &A, const int dim=NDIM)
 
void IBTK::outer_product (libMesh::TensorValue< double > &u_prod_v, const libMesh::TypeVector< double > &u, const libMesh::TypeVector< double > &v, const int dim=NDIM)
 
libMesh::TensorValue< doubleIBTK::outer_product (const libMesh::TypeVector< double > &u, const libMesh::TypeVector< double > &v, const int dim=NDIM)
 
bool IBTK::intersect_line_with_edge (std::vector< std::pair< double, libMesh::Point > > &t_vals, libMesh::Edge *elem, libMesh::Point r, libMesh::VectorValue< double > q, const double tol=0.0)
 
bool IBTK::intersect_line_with_face (std::vector< std::pair< double, libMesh::Point > > &t_vals, libMesh::Face *elem, libMesh::Point r, libMesh::VectorValue< double > q, const double tol=0.0)
 
void IBTK::get_nodal_dof_indices (const libMesh::DofMap &dof_map, const libMesh::Node *const node, const unsigned int variable_n, std::vector< libMesh::dof_id_type > &nodal_indices)
 
template<class MultiArray >
double IBTK::get_max_edge_length (const libMesh::Elem *const elem, const MultiArray &X_node)
 
void IBTK::write_elem_partitioning (const std::string &file_name, const libMesh::System &position_system)
 
void IBTK::write_node_partitioning (const std::string &file_name, const libMesh::System &position_system)
 
std::vector< libMesh::BoundingBox > IBTK::get_local_element_bounding_boxes (const libMesh::MeshBase &mesh, const libMesh::System &X_system, libMesh::QuadratureType quad_type, libMesh::Order quad_order, bool use_adaptive_quadrature, double point_density, bool allow_rules_with_negative_weights, double patch_dx_min)
 
std::vector< libMesh::BoundingBox > IBTK::get_local_element_bounding_boxes (const libMesh::MeshBase &mesh, const libMesh::System &X_system)
 
std::vector< libMesh::BoundingBox > IBTK::get_global_element_bounding_boxes (const libMesh::MeshBase &mesh, const std::vector< libMesh::BoundingBox > &local_bboxes)
 
std::vector< libMesh::BoundingBox > IBTK::get_global_element_bounding_boxes (const libMesh::MeshBase &mesh, const libMesh::System &X_system)