27 #ifndef OOMPH_QUARTER_PIPE_DOMAIN_HEADER
28 #define OOMPH_QUARTER_PIPE_DOMAIN_HEADER
31 #include "../generic/octree.h"
32 #include "../generic/domain.h"
33 #include "../generic/geom_objects.h"
60 unsigned nmacro = nr * ntheta *
nz;
66 for (
unsigned i = 0;
i < nmacro;
i++)
113 const unsigned& i_macro,
114 const unsigned& i_direct,
157 void r_U(
const unsigned&
t,
162 const double& thetamin,
163 const double& thetamax,
168 void r_L(
const unsigned&
t,
173 const double& thetamin,
174 const double& thetamax,
179 void r_D(
const unsigned&
t,
184 const double& thetamin,
185 const double& thetamax,
190 void r_R(
const unsigned&
t,
195 const double& thetamin,
196 const double& thetamax,
201 void r_F(
const unsigned&
t,
206 const double& thetamin,
207 const double& thetamax,
212 void r_B(
const unsigned&
t,
217 const double& thetamin,
218 const double& thetamax,
231 const unsigned& imacro,
232 const unsigned& idirect,
236 using namespace OcTreeNames;
241 unsigned num_z = imacro / (
Nr *
Ntheta);
243 unsigned num_x = imacro %
Ntheta;
252 double thetamin = (
pi / 2.0) * (1.0 -
double(num_x + 1) /
double(
Ntheta));
253 double thetamax = (
pi / 2.0) * (1.0 -
double(num_x) /
double(
Ntheta));
265 else if (idirect ==
D)
269 else if (idirect ==
L)
273 else if (idirect ==
R)
277 else if (idirect ==
F)
281 else if (idirect ==
B)
287 std::ostringstream error_stream;
288 error_stream <<
"idirect is " << idirect <<
" not one of U, D, L, R, F, B"
309 const double& thetamin,
310 const double& thetamax,
328 for (
unsigned i = 0;
i < 2;
i++)
337 f[0] = r_bot[0] + (0.5 * (
s[0] + 1.0)) * (r_top[0] - r_bot[0]);
338 f[1] = r_bot[1] + (0.5 * (
s[0] + 1.0)) * (r_top[1] - r_bot[1]);
350 const double& thetamin,
351 const double& thetamax,
369 for (
unsigned i = 0;
i < 2;
i++)
378 f[0] = r_bot[0] + (0.5 * (
s[0] + 1.0)) * (r_top[0] - r_bot[0]);
379 f[1] = r_bot[1] + (0.5 * (
s[0] + 1.0)) * (r_top[1] - r_bot[1]);
392 const double& thetamin,
393 const double& thetamax,
398 x[0] = thetamax + (0.5 * (
s[0] + 1.0)) * (thetamin - thetamax);
409 for (
unsigned i = 0;
i < 2;
i++)
426 const double& thetamin,
427 const double& thetamax,
432 x[0] = thetamax + (0.5 * (
s[0] + 1.0)) * (thetamin - thetamax);
443 for (
unsigned i = 0;
i < 2;
i++)
460 const double& thetamin,
461 const double& thetamax,
466 x[0] = thetamax + (0.5 * (
s[0] + 1.0)) * (thetamin - thetamax);
478 for (
unsigned i = 0;
i < 2;
i++)
495 const double& thetamin,
496 const double& thetamax,
501 x[0] = thetamax + (0.5 * (
s[0] + 1.0)) * (thetamin - thetamax);
513 for (
unsigned i = 0;
i < 2;
i++)
int i
Definition: BiCGSTAB_step_by_step.cpp:9
dominoes D
Definition: Domino.cpp:55
MatrixXd L
Definition: LLT_example.cpp:6
@ R
Definition: StatisticsVector.h:21
Vector< MacroElement * > Macro_element_pt
Vector of pointers to macro elements.
Definition: domain.h:301
Definition: geom_objects.h:644
Definition: geom_objects.h:101
virtual void position(const Vector< double > &zeta, Vector< double > &r) const =0
Parametrised position on object at current time: r(zeta).
Definition: matrices.h:74
Definition: oomph_definitions.h:222
Definition: macro_element.h:373
Domain representing a quarter pipe.
Definition: quarter_pipe_domain.h:41
double axial_spacing_fct(const double &xi)
Definition: quarter_pipe_domain.h:104
double Length
Length.
Definition: quarter_pipe_domain.h:135
unsigned Nr
Number of elements radial direction.
Definition: quarter_pipe_domain.h:123
void r_L(const unsigned &t, const Vector< double > &zeta, Vector< double > &f, const double &rmin, const double &rmax, const double &thetamin, const double &thetamax, const double &zmin, const double &zmax)
Boundary of macro element zeta .
Definition: quarter_pipe_domain.h:304
GeomObject * Inner_boundary_cross_section_pt
Definition: quarter_pipe_domain.h:143
static double default_axial_spacing_fct(const double &xi)
Definition: quarter_pipe_domain.h:151
double(* AxialSpacingFctPt)(const double &xi)
Definition: quarter_pipe_domain.h:93
void r_U(const unsigned &t, const Vector< double > &zeta, Vector< double > &f, const double &rmin, const double &rmax, const double &thetamin, const double &thetamax, const double &zmin, const double &zmax)
Boundary of macro element zeta .
Definition: quarter_pipe_domain.h:421
double Rmax
Outer radius.
Definition: quarter_pipe_domain.h:132
QuarterPipeDomain(const QuarterPipeDomain &)=delete
Broken copy constructor.
void r_F(const unsigned &t, const Vector< double > &zeta, Vector< double > &f, const double &rmin, const double &rmax, const double &thetamin, const double &thetamax, const double &zmin, const double &zmax)
Boundary of macro element zeta .
Definition: quarter_pipe_domain.h:455
~QuarterPipeDomain()
Destructor:
Definition: quarter_pipe_domain.h:84
AxialSpacingFctPt & axial_spacing_fct_pt()
Definition: quarter_pipe_domain.h:97
unsigned Nz
Number of elements axial direction.
Definition: quarter_pipe_domain.h:126
void r_R(const unsigned &t, const Vector< double > &zeta, Vector< double > &f, const double &rmin, const double &rmax, const double &thetamin, const double &thetamax, const double &zmin, const double &zmax)
Boundary of macro element zeta .
Definition: quarter_pipe_domain.h:345
void operator=(const QuarterPipeDomain &)=delete
Broken assignment operator.
void r_B(const unsigned &t, const Vector< double > &zeta, Vector< double > &f, const double &rmin, const double &rmax, const double &thetamin, const double &thetamax, const double &zmin, const double &zmax)
Boundary of macro element zeta .
Definition: quarter_pipe_domain.h:490
double Rmin
Inner radius.
Definition: quarter_pipe_domain.h:129
AxialSpacingFctPt Axial_spacing_fct_pt
Definition: quarter_pipe_domain.h:147
GeomObject * Outer_boundary_cross_section_pt
Definition: quarter_pipe_domain.h:139
void macro_element_boundary(const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
Definition: quarter_pipe_domain.h:230
void r_D(const unsigned &t, const Vector< double > &zeta, Vector< double > &f, const double &rmin, const double &rmax, const double &thetamin, const double &thetamax, const double &zmin, const double &zmax)
Boundary of macro element zeta .
Definition: quarter_pipe_domain.h:387
unsigned Ntheta
Number of elements azimuthal direction.
Definition: quarter_pipe_domain.h:120
QuarterPipeDomain(const unsigned &ntheta, const unsigned &nr, const unsigned &nz, const double &rmin, const double &rmax, const double &length)
Definition: quarter_pipe_domain.h:45
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
RealScalar s
Definition: level1_cplx_impl.h:130
EIGEN_STRONG_INLINE const Eigen::CwiseBinaryOp< Eigen::internal::scalar_zeta_op< typename DerivedX::Scalar >, const DerivedX, const DerivedQ > zeta(const Eigen::ArrayBase< DerivedX > &x, const Eigen::ArrayBase< DerivedQ > &q)
Definition: SpecialFunctionsArrayAPI.h:152
double rmax
Definition: time_harmonic_fourier_decomposed_linear_elasticity/cylinder/cylinder.cc:70
double zmax
Definition: time_harmonic_fourier_decomposed_linear_elasticity/cylinder/cylinder.cc:71
double zmin
Definition: time_harmonic_fourier_decomposed_linear_elasticity/cylinder/cylinder.cc:69
double rmin
Definition: time_harmonic_fourier_decomposed_linear_elasticity/cylinder/cylinder.cc:68
const unsigned nz
Definition: ConstraintElementsUnitTest.cpp:32
double U
Swimming speed.
Definition: two_d_variable_diff_adapt.cc:53
const Mdouble pi
Definition: ExtendedMath.h:23
const double Pi
50 digits from maple
Definition: oomph_utilities.h:157
@ F
Definition: octree.h:74
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
list x
Definition: plotDoE.py:28
t
Definition: plotPSD.py:36
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86