42 static double tetVolume(
const double *coords);
51 const Range &tets,
double &min_quality,
Tag th =
nullptr,
52 boost::function<
double(
double,
double)> f =
53 [](
double a,
double b) ->
double {
return std::min(
a, b); });
87 template <
int LDB = 1>
123 static inline double shapeFunMBTRI0(
const double x,
const double y);
125 static inline double shapeFunMBTRI1(
const double x,
const double y);
127 static inline double shapeFunMBTRI2(
const double x,
const double y);
142 template <
int LDB = 1>
144 const double *
eta,
const int nb);
281 static inline double shapeFunMBTET0(
const double x,
const double y,
284 static inline double shapeFunMBTET1(
const double x,
const double y,
287 static inline double shapeFunMBTET2(
const double x,
const double y,
290 static inline double shapeFunMBTET3(
const double x,
const double y,
299 N_MBTET0(1. / 3., 1. / 3., 1. / 3.);
301 N_MBTET1(1. / 3., 1. / 3., 1. / 3.);
303 N_MBTET2(1. / 3., 1. / 3., 1. / 3.);
305 N_MBTET3(1. / 3., 1. / 3., 1. / 3.);
321 template <
int LDB = 1>
323 const double *
eta,
const double *
zeta,
363 const double *elem_coords,
const double *glob_coords,
const int nb_nodes,
364 double *local_coords);
389 const double *elem_coords,
const double *glob_coords,
const int nb_nodes,
390 double *local_coords);
394 const double *elem_coords,
const std::complex<double> *glob_coords,
395 const int nb_nodes, std::complex<double> *local_coords);
399 const double *elem_coords,
const double *glob_coords,
const int nb_nodes,
400 double *local_coords) {
402 nb_nodes, local_coords);
426 const double *elem_coords,
const double *glob_coords,
const int nb_nodes,
427 double *local_coords);
440 boost::function<
bool(
double)> f = [](
double q) ->
bool {
458 const char *file_name,
const char *file_type,
const char *options,
460 boost::function<
bool(
double)> f = [](
double q) ->
bool {
477 const double global_coord[],
478 const double tol,
bool &result);
499 double *d_normal =
nullptr);
527 static std::tuple<std::array<double, 3>, std::array<double, 2>,
double>
583 double *
const t_ptr =
nullptr);
602 const double *k_ptr,
const double *l_ptr,
603 double *
const tvw_ptr =
nullptr,
604 double *
const tlk_ptr =
nullptr);
623 double *min_dist_ptr,
double *o_ptr =
nullptr,
644 const int edge1,
const int edge2);
660 std::tuple<std::vector<double>, std::vector<int>, std::vector<int>>;
706 for (
int n = 0;
n != nb; ++
n) {
729 const double *
eta,
const int nb) {
731 for (
int n = 0;
n != nb; ++
n) {
760 const double *
eta,
const double *
zeta,
763 for (
int n = 0;
n != nb; ++
n) {
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
static const double edge_coords[6][6]
const double v
phase velocity of light in medium (cm/ns)
const double n
refractive index of diffusive medium
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
UBlasMatrix< double > MatrixDouble
implementation of Data Operators for Forces and Sources
keeps basic data about problem
base class for all interface classes
double zeta
Viscous hardening.