Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ add_subdirectory("parachuting")
add_subdirectory("parallelplanes")
add_subdirectory("pipeflow")
add_subdirectory("pipeflow_with_preinlet")
add_subdirectory("pipeflow_with_preinlet_single_wbc")
add_subdirectory("simple")
add_subdirectory("stretchCell")
2 changes: 2 additions & 0 deletions examples/pipeflow_with_preinlet/WBC.pos
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1
5.0 16.0 16.0 0.0 0.0 0.0
341 changes: 341 additions & 0 deletions examples/pipeflow_with_preinlet/WBC.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,341 @@
<?xml version="1.0" ?>
<hemocell>
<MaterialModel>
<comment>Parameters for the HO WBC constitutive model.</comment>
<name>WBC</name>
<eta_m> 1.0e-9 </eta_m> <!-- Membrane viscosity. [1e-9 Ns/m]-->
<kBend> 200.0 </kBend> <!-- Bending force modulus for membrane + cytoskeleton ( in k_BT units, 4.142e-21 N m) [200] -->
<kVolume> 20.0 </kVolume> <!-- Volume conservation coefficient (dimensionless) [20] -->
<kArea> 20.0 </kArea> <!--Local area conservation coefficient (dimensionless) 4xrbc [20] -->
<!-- NOTE: kBend should != kArea. The larger the difference, the more stable the model -> they are competing forces under some circumstances. -->
<kLink> 60.0 </kLink> <!-- Link force coefficient (dimensionless) 4xrbc [60.0] -->
<kInnerRigid> 6.40625e-12 </kInnerRigid> <!-- Link force coefficient of the inner links -->
<kCytoskeleton> 6.40625e-15 </kCytoskeleton> <!-- Coefficient of the cytoskeleton force links -->
<coreRadius> 2.5e-6 </coreRadius> <!-- WBC rigid core radius in um -->
<radius> 4.0e-6 </radius> <!-- Radius of the WBC in [ 5.0 um] -->
<InnerEdges>
<Edge> 0 10 </Edge>
<Edge> 1 9 </Edge>
<Edge> 2 11 </Edge>
<Edge> 3 8 </Edge>
<Edge> 4 7 </Edge>
<Edge> 5 6 </Edge>
<Edge> 12 21 </Edge>
<Edge> 13 23 </Edge>
<Edge> 14 22 </Edge>
<Edge> 15 18 </Edge>
<Edge> 16 20 </Edge>
<Edge> 17 19 </Edge>
<Edge> 24 34 </Edge>
<Edge> 25 33 </Edge>
<Edge> 26 35 </Edge>
<Edge> 27 32 </Edge>
<Edge> 28 31 </Edge>
<Edge> 29 30 </Edge>
<Edge> 36 59 </Edge>
<Edge> 37 58 </Edge>
<Edge> 38 57 </Edge>
<Edge> 39 55 </Edge>
<Edge> 40 54 </Edge>
<Edge> 41 56 </Edge>
<Edge> 42 51 </Edge>
<Edge> 43 53 </Edge>
<Edge> 44 52 </Edge>
<Edge> 45 48 </Edge>
<Edge> 46 50 </Edge>
<Edge> 47 49 </Edge>
<Edge> 60 92 </Edge>
<Edge> 61 91 </Edge>
<Edge> 62 90 </Edge>
<Edge> 63 89 </Edge>
<Edge> 64 88 </Edge>
<Edge> 65 87 </Edge>
<Edge> 66 95 </Edge>
<Edge> 67 94 </Edge>
<Edge> 68 93 </Edge>
<Edge> 69 84 </Edge>
<Edge> 70 86 </Edge>
<Edge> 71 85 </Edge>
<Edge> 72 81 </Edge>
<Edge> 73 83 </Edge>
<Edge> 74 82 </Edge>
<Edge> 75 78 </Edge>
<Edge> 76 80 </Edge>
<Edge> 77 79 </Edge>
<Edge> 96 124 </Edge>
<Edge> 97 123 </Edge>
<Edge> 98 125 </Edge>
<Edge> 99 130 </Edge>
<Edge> 100 129 </Edge>
<Edge> 101 131 </Edge>
<Edge> 102 127 </Edge>
<Edge> 103 126 </Edge>
<Edge> 104 128 </Edge>
<Edge> 105 115 </Edge>
<Edge> 106 114 </Edge>
<Edge> 107 116 </Edge>
<Edge> 108 121 </Edge>
<Edge> 109 120 </Edge>
<Edge> 110 122 </Edge>
<Edge> 111 118 </Edge>
<Edge> 112 117 </Edge>
<Edge> 113 119 </Edge>
<Edge> 132 164 </Edge>
<Edge> 133 163 </Edge>
<Edge> 134 162 </Edge>
<Edge> 135 161 </Edge>
<Edge> 136 160 </Edge>
<Edge> 137 159 </Edge>
<Edge> 138 167 </Edge>
<Edge> 139 166 </Edge>
<Edge> 140 165 </Edge>
<Edge> 141 156 </Edge>
<Edge> 142 158 </Edge>
<Edge> 143 157 </Edge>
<Edge> 144 153 </Edge>
<Edge> 145 155 </Edge>
<Edge> 146 154 </Edge>
<Edge> 147 150 </Edge>
<Edge> 148 152 </Edge>
<Edge> 149 151 </Edge>
<Edge> 168 237 </Edge>
<Edge> 169 239 </Edge>
<Edge> 170 238 </Edge>
<Edge> 171 234 </Edge>
<Edge> 172 236 </Edge>
<Edge> 173 235 </Edge>
<Edge> 174 231 </Edge>
<Edge> 175 233 </Edge>
<Edge> 176 232 </Edge>
<Edge> 177 227 </Edge>
<Edge> 178 226 </Edge>
<Edge> 179 225 </Edge>
<Edge> 180 224 </Edge>
<Edge> 181 223 </Edge>
<Edge> 182 222 </Edge>
<Edge> 183 230 </Edge>
<Edge> 184 229 </Edge>
<Edge> 185 228 </Edge>
<Edge> 186 214 </Edge>
<Edge> 187 213 </Edge>
<Edge> 188 215 </Edge>
<Edge> 189 220 </Edge>
<Edge> 190 219 </Edge>
<Edge> 191 221 </Edge>
<Edge> 192 217 </Edge>
<Edge> 193 216 </Edge>
<Edge> 194 218 </Edge>
<Edge> 195 205 </Edge>
<Edge> 196 204 </Edge>
<Edge> 197 206 </Edge>
<Edge> 198 211 </Edge>
<Edge> 199 210 </Edge>
<Edge> 200 212 </Edge>
<Edge> 201 208 </Edge>
<Edge> 202 207 </Edge>
<Edge> 203 209 </Edge>
<Edge> 240 259 </Edge>
<Edge> 241 258 </Edge>
<Edge> 242 263 </Edge>
<Edge> 243 262 </Edge>
<Edge> 244 261 </Edge>
<Edge> 245 260 </Edge>
<Edge> 246 254 </Edge>
<Edge> 247 255 </Edge>
<Edge> 248 252 </Edge>
<Edge> 249 253 </Edge>
<Edge> 250 257 </Edge>
<Edge> 251 256 </Edge>
<Edge> 264 286 </Edge>
<Edge> 265 287 </Edge>
<Edge> 266 285 </Edge>
<Edge> 267 284 </Edge>
<Edge> 268 282 </Edge>
<Edge> 269 283 </Edge>
<Edge> 270 280 </Edge>
<Edge> 271 281 </Edge>
<Edge> 272 279 </Edge>
<Edge> 273 278 </Edge>
<Edge> 274 276 </Edge>
<Edge> 275 277 </Edge>
<Edge> 288 307 </Edge>
<Edge> 289 306 </Edge>
<Edge> 290 311 </Edge>
<Edge> 291 310 </Edge>
<Edge> 292 309 </Edge>
<Edge> 293 308 </Edge>
<Edge> 294 302 </Edge>
<Edge> 295 303 </Edge>
<Edge> 296 300 </Edge>
<Edge> 297 301 </Edge>
<Edge> 298 305 </Edge>
<Edge> 299 304 </Edge>
<Edge> 312 356 </Edge>
<Edge> 313 357 </Edge>
<Edge> 314 354 </Edge>
<Edge> 315 355 </Edge>
<Edge> 316 359 </Edge>
<Edge> 317 358 </Edge>
<Edge> 318 349 </Edge>
<Edge> 319 348 </Edge>
<Edge> 320 353 </Edge>
<Edge> 321 352 </Edge>
<Edge> 322 351 </Edge>
<Edge> 323 350 </Edge>
<Edge> 324 346 </Edge>
<Edge> 325 347 </Edge>
<Edge> 326 345 </Edge>
<Edge> 327 344 </Edge>
<Edge> 328 342 </Edge>
<Edge> 329 343 </Edge>
<Edge> 330 340 </Edge>
<Edge> 331 341 </Edge>
<Edge> 332 339 </Edge>
<Edge> 333 338 </Edge>
<Edge> 334 336 </Edge>
<Edge> 335 337 </Edge>
<Edge> 360 391 </Edge>
<Edge> 361 394 </Edge>
<Edge> 362 388 </Edge>
<Edge> 363 395 </Edge>
<Edge> 364 383 </Edge>
<Edge> 365 381 </Edge>
<Edge> 366 392 </Edge>
<Edge> 367 393 </Edge>
<Edge> 368 397 </Edge>
<Edge> 369 396 </Edge>
<Edge> 370 399 </Edge>
<Edge> 371 398 </Edge>
<Edge> 372 390 </Edge>
<Edge> 373 389 </Edge>
<Edge> 374 387 </Edge>
<Edge> 375 386 </Edge>
<Edge> 376 385 </Edge>
<Edge> 377 384 </Edge>
<Edge> 378 382 </Edge>
<Edge> 379 380 </Edge>
<Edge> 400 420 </Edge>
<Edge> 401 432 </Edge>
<Edge> 402 422 </Edge>
<Edge> 403 433 </Edge>
<Edge> 404 424 </Edge>
<Edge> 405 425 </Edge>
<Edge> 406 439 </Edge>
<Edge> 407 438 </Edge>
<Edge> 408 434 </Edge>
<Edge> 409 437 </Edge>
<Edge> 410 436 </Edge>
<Edge> 411 435 </Edge>
<Edge> 412 421 </Edge>
<Edge> 413 423 </Edge>
<Edge> 414 428 </Edge>
<Edge> 415 431 </Edge>
<Edge> 416 430 </Edge>
<Edge> 417 429 </Edge>
<Edge> 418 427 </Edge>
<Edge> 419 426 </Edge>
<Edge> 440 471 </Edge>
<Edge> 441 474 </Edge>
<Edge> 442 468 </Edge>
<Edge> 443 475 </Edge>
<Edge> 444 463 </Edge>
<Edge> 445 461 </Edge>
<Edge> 446 472 </Edge>
<Edge> 447 473 </Edge>
<Edge> 448 477 </Edge>
<Edge> 449 476 </Edge>
<Edge> 450 479 </Edge>
<Edge> 451 478 </Edge>
<Edge> 452 470 </Edge>
<Edge> 453 469 </Edge>
<Edge> 454 467 </Edge>
<Edge> 455 466 </Edge>
<Edge> 456 465 </Edge>
<Edge> 457 464 </Edge>
<Edge> 458 462 </Edge>
<Edge> 459 460 </Edge>
<Edge> 480 491 </Edge>
<Edge> 481 490 </Edge>
<Edge> 482 489 </Edge>
<Edge> 483 486 </Edge>
<Edge> 484 488 </Edge>
<Edge> 485 487 </Edge>
<Edge> 492 502 </Edge>
<Edge> 493 501 </Edge>
<Edge> 494 503 </Edge>
<Edge> 495 499 </Edge>
<Edge> 496 498 </Edge>
<Edge> 497 500 </Edge>
<Edge> 504 515 </Edge>
<Edge> 505 514 </Edge>
<Edge> 506 513 </Edge>
<Edge> 507 510 </Edge>
<Edge> 508 512 </Edge>
<Edge> 509 511 </Edge>
<Edge> 516 537 </Edge>
<Edge> 517 539 </Edge>
<Edge> 518 538 </Edge>
<Edge> 519 536 </Edge>
<Edge> 520 535 </Edge>
<Edge> 521 534 </Edge>
<Edge> 522 532 </Edge>
<Edge> 523 531 </Edge>
<Edge> 524 533 </Edge>
<Edge> 525 529 </Edge>
<Edge> 526 528 </Edge>
<Edge> 527 530 </Edge>
<Edge> 540 555 </Edge>
<Edge> 541 557 </Edge>
<Edge> 542 551 </Edge>
<Edge> 543 556 </Edge>
<Edge> 544 559 </Edge>
<Edge> 545 558 </Edge>
<Edge> 546 554 </Edge>
<Edge> 547 553 </Edge>
<Edge> 548 552 </Edge>
<Edge> 549 550 </Edge>
<Edge> 560 570 </Edge>
<Edge> 561 576 </Edge>
<Edge> 562 572 </Edge>
<Edge> 563 579 </Edge>
<Edge> 564 578 </Edge>
<Edge> 565 577 </Edge>
<Edge> 566 571 </Edge>
<Edge> 567 575 </Edge>
<Edge> 568 574 </Edge>
<Edge> 569 573 </Edge>
<Edge> 580 595 </Edge>
<Edge> 581 597 </Edge>
<Edge> 582 591 </Edge>
<Edge> 583 596 </Edge>
<Edge> 584 599 </Edge>
<Edge> 585 598 </Edge>
<Edge> 586 594 </Edge>
<Edge> 587 593 </Edge>
<Edge> 588 592 </Edge>
<Edge> 589 590 </Edge>
<Edge> 600 607 </Edge>
<Edge> 601 609 </Edge>
<Edge> 602 608 </Edge>
<Edge> 603 606 </Edge>
<Edge> 604 605 </Edge>
<Edge> 610 615 </Edge>
<Edge> 611 619 </Edge>
<Edge> 612 618 </Edge>
<Edge> 613 617 </Edge>
<Edge> 614 616 </Edge>
<Edge> 620 627 </Edge>
<Edge> 621 629 </Edge>
<Edge> 622 628 </Edge>
<Edge> 623 626 </Edge>
<Edge> 624 625 </Edge>
<Edge> 630 636 </Edge>
<Edge> 631 634 </Edge>
<Edge> 632 637 </Edge>
<Edge> 633 635 </Edge>
<Edge> 638 640 </Edge>
<Edge> 639 641 </Edge>
</InnerEdges>
<minNumTriangles> 600 </minNumTriangles> <!--Minimun numbers of triangles per cell. Not always exact. [642]-->
</MaterialModel>
</hemocell>
9 changes: 8 additions & 1 deletion examples/pipeflow_with_preinlet/pipeflow_with_preinlet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <helper/voxelizeDomain.h>
#include "rbcHighOrderModel.h"
#include "pltSimpleModel.h"
#include "wbcHighOrderModel.h"
#include "cellInfo.h"
#include "fluidInfo.h"
#include "particleInfo.h"
Expand Down Expand Up @@ -108,6 +109,10 @@ int main(int argc, char *argv[]) {
hemocell.addCellType<PltSimpleModel>("PLT", ELLIPSOID_FROM_SPHERE);
hemocell.setMaterialTimeScaleSeparation("PLT", (*cfg)["ibm"]["stepMaterialEvery"].read<int>());

hemocell.addCellType<WbcHighOrderModel>("WBC", WBC_SPHERE);
hemocell.setMaterialTimeScaleSeparation("WBC", (*cfg)["ibm"]["stepMaterialEvery"].read<int>());
hemocell.setInitialMinimumDistanceFromSolid("WBC", 1); //Micrometer! not LU

hemocell.setParticleVelocityUpdateTimeScaleSeparation((*cfg)["ibm"]["stepParticleEvery"].read<int>());

//hemocell.setRepulsion((*cfg)["domain"]["kRep"].read<double>(), (*cfg)["domain"]["RepCutoff"].read<double>());
Expand All @@ -116,6 +121,7 @@ int main(int argc, char *argv[]) {
vector<int> outputs = {OUTPUT_POSITION,OUTPUT_TRIANGLES,OUTPUT_FORCE,OUTPUT_FORCE_VOLUME,OUTPUT_FORCE_BENDING,OUTPUT_FORCE_LINK,OUTPUT_FORCE_AREA,OUTPUT_FORCE_VISC};
hemocell.setOutputs("RBC", outputs);
hemocell.setOutputs("PLT", outputs);
hemocell.setOutputs("WBC", outputs);

outputs = {OUTPUT_VELOCITY,OUTPUT_DENSITY,OUTPUT_FORCE,OUTPUT_BOUNDARY};
hemocell.setFluidOutputs(outputs);
Expand Down Expand Up @@ -181,7 +187,8 @@ int main(int argc, char *argv[]) {
pcout << "(main) Stats. @ " << hemocell.iter << " (" << hemocell.iter * param::dt << " s):" << endl;
pcout << "\t # of cells: " << CellInformationFunctionals::getTotalNumberOfCells(&hemocell);
pcout << " | # of RBC: " << CellInformationFunctionals::getNumberOfCellsFromType(&hemocell, "RBC");
pcout << ", PLT: " << CellInformationFunctionals::getNumberOfCellsFromType(&hemocell, "PLT") << endl;
pcout << ", PLT: " << CellInformationFunctionals::getNumberOfCellsFromType(&hemocell, "PLT");
pcout << ", WBC: " << CellInformationFunctionals::getNumberOfCellsFromType(&hemocell, "WBC") << endl;
FluidStatistics finfo = FluidInfo::calculateVelocityStatistics(&hemocell); double toMpS = param::dx / param::dt;
pcout << "\t Velocity - max.: " << finfo.max * toMpS << " m/s, mean: " << finfo.avg * toMpS<< " m/s, rel. app. viscosity: " << (param::u_lbm_max*0.5) / finfo.avg << endl;
ParticleStatistics pinfo = ParticleInfo::calculateForceStatistics(&hemocell); double topN = param::df * 1.0e12;
Expand Down
Loading