174 Problem::Max_newton_iterations = 20;
182 double sheet_thickness = 0.1;
185 double x_min = -sheet_thickness / 2.0;
186 double x_max = sheet_thickness / 2.0;
198 double glue_layer_width_y = 2.0 /
double(n_y);
199 double glue_layer_width_z = 2.0 /
double(n_z);
203 for (
unsigned i_mesh = 0; i_mesh < n_mesh; i_mesh++) {
211 std::string filename =
"mesh_boundaries" + to_string(i_mesh) +
".dat";
221 for (
unsigned i = 0;
i < n_element;
i++) {
227 el_pt->constitutive_law_pt() =
236 bool minimal_constraint =
true;
253 for (
unsigned n = 0;
n < n_node;
n++) {
255 double y = nod_pt->x(1);
256 double z = nod_pt->x(2);
257 if ((y <= ll_node_pt->x(1)) && (z <= ll_node_pt->x(2))) {
260 if ((y <= ul_node_pt->x(1)) && (z >= ul_node_pt->x(2))) {
263 if ((y >= ur_node_pt->x(1)) && (z >= ur_node_pt->x(2))) {
266 if ((y >= lr_node_pt->x(1)) && (z <= lr_node_pt->x(2))) {
276 ll_node_pt->pin_position(0);
277 ll_node_pt->pin_position(1);
278 ll_node_pt->pin_position(2);
281 ul_node_pt->pin_position(0);
282 ul_node_pt->pin_position(1);
285 lr_node_pt->pin_position(0);
287 oomph_info <<
"Pinning at: \n"
288 << ll_node_pt->x(0) <<
" "
289 << ll_node_pt->x(1) <<
" "
290 << ll_node_pt->x(2) <<
"\n"
291 << ul_node_pt->x(0) <<
" "
292 << ul_node_pt->x(1) <<
" "
293 << ul_node_pt->x(2) <<
"\n"
294 << lr_node_pt->x(0) <<
" "
295 << lr_node_pt->x(1) <<
" "
296 << lr_node_pt->x(2) <<
"\n";
335 PVDEquationsBase<3>::pin_redundant_nodal_solid_pressures(
342 for (
unsigned j = 0; j < nnode; j++) {
363 oomph_info <<
"# of glue nodes: " << n_node << std::endl;
364 Vector<Node *> glue_node_pt;
365 glue_node_pt.reserve(n_node);
366 for (
unsigned n = 0;
n < n_node;
n++) {
367 Node *potential_node_pt =
Solid_mesh_pt[i_mesh]->boundary_node_pt(b,
n);
369 (potential_node_pt->x(1) < (y_min + glue_layer_width_y + tol)) ||
370 (potential_node_pt->x(1) > (y_max - glue_layer_width_y - tol)) ||
371 (potential_node_pt->x(2) < (z_min + glue_layer_width_z + tol))) {
372 glue_node_pt.push_back(potential_node_pt);
377 unsigned i_mesh_replace = 1;
392 for (
unsigned i_mesh = 0; i_mesh < n_mesh; i_mesh++) {
413 cout << assign_eqn_numbers() << std::endl;
const unsigned n
Definition: CG3DPackingUnitTest.cpp:32
Definition: glued_mesh_stuff.h:20
void glue(const Vector< Node * > glue_node_pt, const unsigned &i_mesh_replace)
Definition: glued_mesh_stuff.h:72
Vector< SolidMesh * > Traction_mesh_pt
Pointers to meshes of traction elements.
Definition: TwenteMeshGluing.cpp:159
Vector< SolidMesh * > Solid_mesh_pt
Pointers to solid meshes.
Definition: TwenteMeshGluing.cpp:156
GluedSolidMesh * Glued_mesh_pt
Glued mesh.
Definition: TwenteMeshGluing.cpp:162
void create_traction_elements(SolidMesh *traction_mesh_pt, SolidMesh *solid_mesh_pt, const unsigned &b)
Create traction elements.
Definition: TwenteMeshGluing.cpp:116
Simple cubic mesh upgraded to become a solid mesh.
Definition: glued_mesh_stuff.h:208
ConstitutiveLaw * Constitutive_law_pt
Pointer to constitutive law.
Definition: TwenteMeshGluing.cpp:61
const std::complex< Mdouble > i
Definition: ExtendedMath.h:51