PageSourceSearch

https://precice.org/tutorials.html

html precice.org collected 2026-10-02 04:37:30 UTC 51,610 bytes, 2,946 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <meta charset="utf-8">
5<meta name="viewport" content="width=device-width, initial-scale=1">
6
7<meta name="description" content="A handful of ready-to-run cases for you to build upon.">
8
9<meta name="keywords" content=" tutorials, examples, cases">
10<meta name="theme-color" content="#0A76BB">
11<meta name="msapplication-square310x310logo" content="images/icon-310x310.png">
12
13<title>A handful of exciting tutorials | preCICE - The Coupling Library</title>
14<link rel="alternate" type="application/rss+xml" title="" href="https://precice.org/feed.xml">
15
16<!-- OpenGraph metadata -->
17<meta property="og:title" content="A handful of exciting tutorials" />
18<meta property="og:site_name" content="preCICE.org" />
19<meta property="og:type" content="website" />
20<meta property="og:url" content="https://precice.org/tutorials.html" />
21<meta property="og:image" content="https://precice.org/images/icon-310x310.png" />
22<meta property="og:description" content="A handful of ready-to-run cases for you to build upon.">
23
24<!-- Twitter Card metadata -->
25<meta name="twitter:card" content="summary" />
26<meta name="twitter:title" content="A handful of exciting tutorials" />
27<meta name="twitter:description" content="A handful of ready-to-run cases for you to build upon.">
28<meta name="twitter:image" content="https://precice.org/images/icon-310x310.png" />
29
30<!-- Canonical link -->
31<link rel="canonical" href="https://precice.org/tutorials" >
32
33<link rel="shortcut icon" href="images/favicon.ico">
34<link rel="stylesheet" href="css/syntax.css">
35<link rel="icon" sizes="192x192" href="images/icon.png">
36<link rel="apple-touch-icon" sizes="310x310" href="images/icon-310x310.png">
37
38<!-- Font Awesome -->
39<link rel="stylesheet" 
40href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css">
41
42<!-- Bootstrap -->
43<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
44
45<!-- Local CSS -->
46<link rel="stylesheet" href="css/customstyles.css?v=1790892012">
47<link rel="stylesheet" href="css/customstyles-precice.css?v=1790892012">
48<link rel="stylesheet" href="css/boxshadowproperties.css?v=1790892012">
49<link rel="stylesheet" href="css/bookcover.css?v=1790892012">
50<!-- Color styles -->
51<link rel="stylesheet" href="css/theme-precice.css?v=1790892012">
52<!-- Styling for landing page -->
53
54
55<!-- Jquery, Ajax -->
56<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
56
57
58<!-- Anchor.js -->
59<script src="https://cdn.jsdelivr.net/npm/[email protected]/anchor.min.js" integrity="sha256-m1eTvwEHwmsw4+XKF7BshClVJEPwTVycveNl0CS0Mkk=" crossorigin="anonymous"></script>
59
60
61<!-- Bootstrap JavaScript (requires jquery) -->
62<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
62
63
64<!-- Local JS -->
65<script src="js/toc.js"></script>
vendor: 1 bytes, line 65
65
66<script src="js/customscripts.js"></script>
66
67
68
69
70<!-- KaTeX -->
71<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" integrity="sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4+cU+KJWu/X" crossorigin="anonymous">
72<!-- The loading of KaTeX is deferred to speed up page rendering -->
73<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js" integrity="sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4" crossorigin="anonymous"></script>
73
74<!-- To automatically render math in text elements, include the auto-render extension: -->
75<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js" integrity="sha384-mll67QQFJfxn0IYznZYonOWZ644AWYC+Pt2cHqMaRhXVrursRwvLnLaebdGIlYNa" crossorigin="anonymous"
76    onload="renderMathInElement(document.body);"></script>
76
77
78<!-- Algolia search -->
79<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/instantsearch.min.js"></script>
vendor: 1 bytes, line 79
79
80<script src="https://cdn.jsdelivr.net/npm/[email protected]/moment.min.js"></script>
80
81<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/instantsearch.min.css">
82<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/instantsearch-theme-algolia.min.css">
83
84<!-- QR code for printed pages -->
85<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/qrcode.min.js"></script>
vendor: 1 bytes, line 85
85
86<script>
87  document.addEventListener("DOMContentLoaded", function () {
88    var qrDiv = document.createElement("div");
89    qrDiv.id = "print-qr-code";
90    var qr = qrcode(0, "M");
91    qr.addData("https://precice.org/tutorials.html");
92    qr.make();
93    qrDiv.innerHTML = qr.createImgTag(3, 0);
94    document.body.appendChild(qrDiv);
95  });
96</script>
96
97<style>
98  #print-qr-code {
99    display: none;
100  }
101  @media print {
102    #print-qr-code {
103      display: block;
104      position: absolute;
105      top: 0;
106      right: 0;
107    }
108  }
109</style>
110
111<!-- Plausible Analytics -->
112<script async defer data-domain="precice.org" src="https://plausible.io/js/plausible.js"></script>
112
113
114
115    
115<script>
116    document.addEventListener('DOMContentLoaded', function () {
117      var toggleLink = document.getElementById('tg-sb-link');
118      if (!toggleLink) return;
119      toggleLink.addEventListener('click', function () {
120        var sidebar = document.getElementById('tg-sb-sidebar');
121        var content = document.getElementById('tg-sb-content');
122        var icon = document.getElementById('tg-sb-icon');
123        if (sidebar) {
124          sidebar.hidden = !sidebar.hidden;
125        }
126        if (content) {
127          content.classList.toggle('col-md-9');
128          content.classList.toggle('col-md-12');
129        }
130        if (icon) {
131          icon.classList.toggle('fa-toggle-on');
132          icon.classList.toggle('fa-toggle-off');
133        }
134      });
135    });
136    </script>
136
137    
137<script>
138        // wrap tables into a div to make them scrollable on small viewports
139    document.addEventListener('DOMContentLoaded', function () {
140      document.querySelectorAll('table').forEach(function (table) {
141        table.classList.add('table', 'table-striped', 'table-hover', 'table-bordered', 'w-100');
142        var tableHead = table.querySelector('thead');
143        if (tableHead) {
144          tableHead.classList.add('table-primary');
145        }
146        if (table.parentElement && table.parentElement.classList.contains('table-responsive')) {
147          return;
148        }
149        var wrapper = document.createElement('div');
150        wrapper.className = 'table-responsive w-100';
151        table.parentNode.insertBefore(wrapper, table);
152        wrapper.appendChild(table);
153      });
154    });
155    </script>
155
156    
157</head>
158<body>
159    <header>
160        <!-- Navigation -->
161<nav class="navbar navbar-expand-xl fixed-top" data-bs-theme="light" aria-label="Main">
162    <div class="container topnavlinks">
163        <div class="navbar-header navbar-header-group">
164            <a class="navbar-brand no-icon" href="/">
165                <span class="navbar-brand-icon">
166                    <img class="navbar-brand-text" src="images/preCICE_text_28px.svg" alt="preCICE">
167                </span>
168            </a>
169            <button class="navbar-toggler collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#bs-example-navbar-collapse-1" aria-controls="bs-example-navbar-collapse-1" aria-expanded="false" aria-label="Toggle navigation">
170                <span class="navbar-toggler-icon"></span>
171            </button>
172        </div>
173        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
174            <ul class="nav navbar-nav ms-auto">
175                <!-- entries without drop-downs appear here -->
176                
177                
178                
179
180                
181                
182                
183                
184                <li><a href="quickstart.html">Quickstart</a></li>
185                
186                
187                
188                
189                <li><a href="docs.html">Docs</a></li>
190                
191                
192                
193                
194                <li class="active"><a href="tutorials.html">Tutorials</a></li>
195                
196                
197                
198                
199                <li><a href="community.html">Community</a></li>
200                
201                
202                
203                
204                <li><a href="https://precice.discourse.group/c/news" target="_blank" rel="noopener">Blog</a></li>
205                
206                
207                
208                
209                <li><a href="about.html">About</a></li>
210                
211                
212                
213
214                <!-- entries with drop-downs appear here -->
215                
216
217                <!--comment out this block if you want to hide search-->
218                    <!--start search-->
219                <li class="navbar-search-li">
220                    <div id="search-demo-container">
221                        <div id="search-input"></div>
222                        <div id="search-results"></div>
223                        
223<script>
224const algoliaSearch = instantsearch({
225  appId: 'LIT6P0EW26',
226  apiKey: '760ed6be3e165d08b4a798ac4aa82fe4',
227  indexName: 'jekyll',
228  searchFunction: function(helper) {
229    var searchResults = document.getElementById('search-results');
230    if (helper.state.query === '') {
231      if (searchResults) searchResults.style.display = 'none';
232      return;
233    }
234    helper.search();
235    if (searchResults) searchResults.style.display = 'block';
236  }
237});
238
239const hitTemplate = function(hit) {
240  let date = '';
241  if (hit.date) {
242    date = moment.unix(hit.date).format('MMM D, YYYY');
243  }
244
245  let url = `${hit.url}#${hit.anchor}`;
246
247  const title = hit._highlightResult.title.value;
248
249  let breadcrumbs = '';
250  if (hit._highlightResult.headings) {
251    breadcrumbs = hit._highlightResult.headings.map(match => {
252      return `<span class="result-breadcrumb">${match.value}</span>`
253    }).join(' > ')
254  }
255
256  const content = hit._highlightResult.html.value;
257
258  return `
259    <div class="result-item">
260    <h2><a class="result-link" href="${url}">${title}</a></h2>
261    <a href="${url}" class="result-breadcrumbs">${breadcrumbs}</a>
262    <div class="result-snippet">${content}</div>
263    </div>
264  `;
265}
266
267algoliaSearch.addWidget(
268  instantsearch.widgets.searchBox({
269    container: '#search-input',
270    placeholder: 'Search (' + (/Mac|iPhone|iPad/.test(navigator.platform) ? '⌘K' : 'Ctrl+K') + ')',
271    poweredBy: true, // This is required if you're on the free Community plan
272    magnifier: false,
273    autofocus: false,
274    searchOnEnterKeyPressOnly: false,
275    reset: true
276  })
277);
278
279algoliaSearch.addWidget(
280  instantsearch.widgets.hits({
281    container: '#search-results',
282    templates: {
283      item: hitTemplate
284    }
285  })
286);
287
288algoliaSearch.start();
289
290// Navbar search layout (patch after start — same as precice.org)
291(function patchAlgoliaNavbarStyles() {
292  var box = document.querySelector('.navbar .ais-search-box');
293  var input = document.querySelector('.navbar .ais-search-box--input');
294  var reset = document.querySelector('.navbar .ais-search-box--reset');
295  var poweredBy = document.querySelector('.navbar .ais-search-box--powered-by');
296  var poweredByLink = document.querySelector('.navbar .nav li a.ais-search-box--powered-by-link');
297  if (poweredBy) {
298    poweredBy.style.marginTop = '-15px';
299    poweredBy.style.paddingRight = '5px';
300    poweredBy.style.pointerEvents = 'none';
301  }
302  if (poweredByLink) {
303    poweredByLink.style.padding = '0';
304    poweredByLink.style.backgroundColor = 'transparent';
305    poweredByLink.style.display = 'inline-block';
306    poweredByLink.style.pointerEvents = 'auto';
307  }
308  if (reset) {
309    reset.style.zIndex = '10';
310    reset.style.cursor = 'pointer';
311  }
312  if (input) {
313    input.style.paddingLeft = '10px';
314    input.style.borderColor = '#0A76BB';
315  }
316  if (box) {
317    box.style.padding = '.5em';
318    box.style.marginBottom = '0';
319    box.style.marginLeft = '10px';
320    box.style.marginTop = '0';
321    box.style.width = '20em';
322    box.style.fontSize = '0.8em';
323    box.style.height = '50px';
324    box.style.boxSizing = 'border-box';
325  }
326})();
327
328// some hacky JS to hide the search results until we move to docsearch (which is a true autocomplete-type search)
329document.addEventListener('mouseup', function(e) {
330  var results = document.getElementById('search-results');
331  if (!results.contains(e.target)) {
332    results.style.display = 'none';
333  }
334});
335document.addEventListener('mouseup', function(e) {
336  var input = document.getElementById('search-input');
337  var results = document.getElementById('search-results');
338  if (input.contains(e.target)) {
339    results.style.display = 'block';
340  }
341});
342
343// Cmd+K / Ctrl+K keyboard shortcut to focus search, Escape to dismiss
344document.addEventListener('keydown', function(e) {
345  var isMac = /Mac|iPhone|iPad|iPod/.test(navigator.platform);
346  if ((isMac ? e.metaKey : e.ctrlKey) && e.key === 'k') {
347    e.preventDefault();
348    var input = document.querySelector('.ais-search-box--input');
349    if (input) {
350      input.focus();
351      input.select();
352    }
353  }
354
355  if (e.key === 'Escape' || e.keyCode === 27) {
356    var results = document.getElementById('search-results');
357    var inputContainer = document.getElementById('search-input');
358    var activeElement = document.activeElement;
359
360    if (results) {
361      results.style.display = 'none';
362    }
363
364    if (inputContainer && inputContainer.contains(activeElement)) {
365      activeElement.blur();
366    } else if (results && results.contains(activeElement)) {
367      var algoliaInput = document.querySelector('#search-input .ais-search-box--input');
368      if (algoliaInput) {
369        algoliaInput.focus();
370      } else {
371        activeElement.blur();
372      }
373    }
374  }
375});
376
377</script>
377
378                    </div>
379                </li>
380                    <!--end search-->
381                <li>
382                    <a class="no-icon nav-external" href="https://precice.discourse.group" target="_blank" rel="noopener noreferrer" aria-label="Join the discourse community"><i class="fab fa-discourse"></i></a>
383                </li>
384                <li>
385                    <a class="no-icon nav-external" href="https://github.com/precice" target="_blank" rel="noopener noreferrer" aria-label="Star precice/precice on GitHub"><i class="fab fa-github"></i></a>
386                </li>
387                <li>
388                    <a class="no-icon nav-external" href="https://www.linkedin.com/company/precice" target="_blank" rel="noopener noreferrer" aria-label="Follow us on LinkedIn"><i class="fab fa-linkedin"></i></a>
389                </li>
390                    <!-- rel="me" required by Mastodon for verification -->
391                <li>
392                    <a rel="me noopener noreferrer" class="no-icon nav-external" href="https://fosstodon.org/@precice" target="_blank" aria-label="Follow us on Mastodon"><i class="fab fa-mastodon"></i></a>
393                </li>
394                <li>
395                    <a class="no-icon nav-external" href="https://www.youtube.com/c/preCICECoupling/" target="_blank" rel="noopener noreferrer" aria-label="Subscribe on Youtube"><i class="fab fa-youtube"></i></a>
396                </li>
397            </ul>
398        </div>
399    </div>
400</nav>
401
402          <!-- News banner -->
403          
404
405
406
407    </header>
408    <div class="container page-content mb-5">
409        
410        <div class="row">
411          <div class="col-md-3 mb-4 mb-md-0" id="tg-sb-sidebar">
412            
413
414<nav aria-label="Tutorials">
415<ul id="mysidebar" class="sidebar-nav flex-column">
416  <li class="sidebarTitle">Tutorials </li>
417
418  
419    
420      
421        
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436  
437  
438
439  
440  
441  
442
443  
444    
445      
446      
447  
448
449  
450
451  
452
453  <li class="nav-item">
454    <a class="nav-link active"
455       title="Introduction"
456       data-bs-toggle="collapse" href="#sb-1-introduction"
457       role="button"
458       aria-expanded="true"
459       aria-controls="sb-1-introduction">
460       Introduction
461    </a>
462    <ul class="collapse show sidebar-nav flex-column list-unstyled mb-0"
463        id="sb-1-introduction" data-bs-parent="#mysidebar">
464
465      
466
467      
468
469      
470        
471          
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486  
487  <li class="nav-item">
488    <a class="nav-link active"
489       title="Overview" href="tutorials.html">
490       Overview
491    </a>
492  </li>
493
494
495          
496        
497      
498        
499          
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514  
515  <li class="nav-item">
516    <a class="nav-link "
517       title="Visualization" href="tutorials-visualization.html">
518       Visualization
519    </a>
520  </li>
521
522
523          
524        
525      
526
527      
528
529      
530    </ul>
531  </li>
532
533
534      
535    
536      
537        
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552  
553  
554
555  
556  
557  
558
559  
560    
561      
562      
563      
564      
565    
566      
567      
568      
569      
570    
571      
572      
573      
574      
575    
576      
577      
578      
579      
580    
581  
582
583  
584    
585  
586
587  
588    
589  
590
591  <li class="nav-item">
592    <a class="nav-link collapsed"
593       title="Basic cases"
594       data-bs-toggle="collapse" href="#sb-1-basic-cases"
595       role="button"
596       aria-expanded="false"
597       aria-controls="sb-1-basic-cases">
598       Basic cases
599    </a>
600    <ul class="collapse  sidebar-nav flex-column list-unstyled mb-0"
601        id="sb-1-basic-cases" data-bs-parent="#mysidebar">
602
603      
604
605      
606
607      
608        
609          
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624  
625  <li class="nav-item">
626    <a class="nav-link "
627       title="Quickstart" href="quickstart.html">
628       Quickstart
629    </a>
630  </li>
631
632
633          
634        
635      
636        
637          
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652  
653  <li class="nav-item">
654    <a class="nav-link "
655       title="Flow over heated plate" href="tutorials-flow-over-heated-plate.html">
656       Flow over heated plate
657    </a>
658  </li>
659
660
661          
662        
663      
664        
665          
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680  
681  <li class="nav-item">
682    <a class="nav-link "
683       title="Partitioned heat conduction" href="tutorials-partitioned-heat-conduction.html">
684       Partitioned heat conduction
685    </a>
686  </li>
687
688
689          
690        
691      
692        
693          
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708  
709  <li class="nav-item">
710    <a class="nav-link "
711       title="Perpendicular flap" href="tutorials-perpendicular-flap.html">
712       Perpendicular flap
713    </a>
714  </li>
715
716
717          
718        
719      
720
721      
722
723      
724    </ul>
725  </li>
726
727
728      
729    
730      
731        
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746  
747  
748
749  
750  
751  
752
753  
754    
755      
756      
757      
758      
759    
760      
761      
762      
763        
764          
765          
766        
767          
768          
769        
770          
771          
772        
773        
774      
775      
776    
777      
778      
779      
780      
781    
782      
783      
784      
785      
786    
787      
788      
789      
790        
791          
792          
793        
794          
795          
796        
797          
798          
799        
800          
801          
802        
803        
804      
805      
806    
807      
808      
809      
810      
811    
812      
813      
814      
815      
816    
817      
818      
819      
820      
821    
822      
823      
824      
825      
826    
827      
828      
829      
830      
831    
832      
833      
834      
835      
836    
837      
838      
839      
840      
841    
842      
843      
844      
845        
846          
847          
848        
849          
850          
851        
852          
853          
854        
855          
856          
857        
858          
859          
860        
861          
862          
863        
864        
865      
866        
867          
868          
869        
870          
871          
872        
873          
874          
875        
876          
877          
878        
879          
880          
881        
882        
883      
884        
885          
886          
887        
888          
889          
890        
891        
892      
893      
894    
895      
896      
897      
898      
899    
900      
901      
902      
903      
904    
905      
906      
907      
908      
909    
910      
911      
912      
913      
914    
915      
916      
917      
918      
919    
920      
921      
922      
923      
924    
925      
926      
927      
928      
929    
930  
931
932  
933    
934  
935
936  
937    
938  
939
940  <li class="nav-item">
941    <a class="nav-link collapsed"
942       title="All tutorials"
943       data-bs-toggle="collapse" href="#sb-1-all-tutorials"
944       role="button"
945       aria-expanded="false"
946       aria-controls="sb-1-all-tutorials">
947       All tutorials
948    </a>
949    <ul class="collapse  sidebar-nav flex-column list-unstyled mb-0"
950        id="sb-1-all-tutorials" data-bs-parent="#mysidebar">
951
952      
953
954      
955
956      
957        
958          
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973  
974  <li class="nav-item">
975    <a class="nav-link "
976       title="ASTE turbine" href="tutorials-aste-turbine.html">
977       ASTE turbine
978    </a>
979  </li>
980
981
982          
983        
984      
985        
986          
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001  
1002  <li class="nav-item">
1003    <a class="nav-link "
1004       title="Breaking dam with flexible pillar 2D" href="tutorials-breaking-dam-2d.html">
1005       Breaking dam with flexible pillar 2D
1006    </a>
1007  </li>
1008
1009
1010          
1011            
1012              
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027  
1028  
1029
1030  
1031  
1032  
1033
1034  
1035    
1036  
1037
1038  
1039    
1040  
1041
1042  
1043    
1044      
1045      
1046    
1047      
1048      
1049    
1050      
1051      
1052    
1053  
1054
1055  <li class="nav-item">
1056    <a class="nav-link collapsed"
1057       title="Channel transport"
1058       data-bs-toggle="collapse" href="#sb-3-channel-transport"
1059       role="button"
1060       aria-expanded="false"
1061       aria-controls="sb-3-channel-transport">
1062       Channel transport
1063    </a>
1064    <ul class="collapse  sidebar-nav flex-column list-unstyled mb-0"
1065        id="sb-3-channel-transport" data-bs-parent="#sb-1-all-tutorials">
1066
1067      
1068
1069      
1070
1071      
1072
1073      
1074
1075      
1076        
1077          
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092  
1093  <li class="nav-item">
1094    <a class="nav-link "
1095       title="Basic variant" href="tutorials-channel-transport.html">
1096       Basic variant
1097    </a>
1098  </li>
1099
1100
1101        
1102      
1103        
1104          
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119  
1120  <li class="nav-item">
1121    <a class="nav-link "
1122       title="Reaction" href="tutorials-channel-transport-reaction.html">
1123       Reaction
1124    </a>
1125  </li>
1126
1127
1128        
1129      
1130        
1131          
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146  
1147  <li class="nav-item">
1148    <a class="nav-link "
1149       title="Particles" href="tutorials-channel-transport-particles.html">
1150       Particles
1151    </a>
1152  </li>
1153
1154
1155        
1156      
1157    </ul>
1158  </li>
1159
1160
1161            
1162          
1163        
1164      
1165        
1166          
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181  
1182  <li class="nav-item">
1183    <a class="nav-link "
1184       title="Elastic tube 1D" href="tutorials-elastic-tube-1d.html">
1185       Elastic tube 1D
1186    </a>
1187  </li>
1188
1189
1190          
1191        
1192      
1193        
1194          
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209  
1210  <li class="nav-item">
1211    <a class="nav-link "
1212       title="Elastic tube 3D" href="tutorials-elastic-tube-3d.html">
1213       Elastic tube 3D
1214    </a>
1215  </li>
1216
1217
1218          
1219        
1220      
1221        
1222          
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237  
1238  <li class="nav-item">
1239    <a class="nav-link "
1240       title="Flow around controlled moving cylinder" href="tutorials-flow-around-controlled-moving-cylinder.html">
1241       Flow around controlled moving cylinder
1242    </a>
1243  </li>
1244
1245
1246          
1247            
1248              
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263  
1264  
1265
1266  
1267  
1268  
1269
1270  
1271    
1272  
1273
1274  
1275    
1276  
1277
1278  
1279    
1280      
1281      
1282    
1283      
1284      
1285    
1286      
1287      
1288    
1289      
1290      
1291    
1292  
1293
1294  <li class="nav-item">
1295    <a class="nav-link collapsed"
1296       title="Flow over a heated plate"
1297       data-bs-toggle="collapse" href="#sb-3-flow-over-a-heated-plate"
1298       role="button"
1299       aria-expanded="false"
1300       aria-controls="sb-3-flow-over-a-heated-plate">
1301       Flow over a heated plate
1302    </a>
1303    <ul class="collapse  sidebar-nav flex-column list-unstyled mb-0"
1304        id="sb-3-flow-over-a-heated-plate" data-bs-parent="#sb-3-channel-transport">
1305
1306      
1307
1308      
1309
1310      
1311
1312      
1313
1314      
1315        
1316          
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331  
1332  <li class="nav-item">
1333    <a class="nav-link "
1334       title="Basic variant" href="tutorials-flow-over-heated-plate.html">
1335       Basic variant
1336    </a>
1337  </li>
1338
1339
1340        
1341      
1342        
1343          
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358  
1359  <li class="nav-item">
1360    <a class="nav-link "
1361       title="Nearest-projection mapping" href="tutorials-flow-over-heated-plate-nearest-projection.html">
1362       Nearest-projection mapping
1363    </a>
1364  </li>
1365
1366
1367        
1368      
1369        
1370          
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385  
1386  <li class="nav-item">
1387    <a class="nav-link "
1388       title="Steady state" href="tutorials-flow-over-heated-plate-steady-state.html">
1389       Steady state
1390    </a>
1391  </li>
1392
1393
1394        
1395      
1396        
1397          
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412  
1413  <li class="nav-item">
1414    <a class="nav-link "
1415       title="Two meshes" href="tutorials-flow-over-heated-plate-two-meshes.html">
1416       Two meshes
1417    </a>
1418  </li>
1419
1420
1421        
1422      
1423    </ul>
1424  </li>
1425
1426
1427            
1428          
1429        
1430      
1431        
1432          
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447  
1448  <li class="nav-item">
1449    <a class="nav-link "
1450       title="Free flow over porous media" href="tutorials-free-flow-over-porous-media.html">
1451       Free flow over porous media
1452    </a>
1453  </li>
1454
1455
1456          
1457        
1458      
1459        
1460          
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475  
1476  <li class="nav-item">
1477    <a class="nav-link "
1478       title="Heat exchanger" href="tutorials-heat-exchanger.html">
1479       Heat exchanger
1480    </a>
1481  </li>
1482
1483
1484          
1485        
1486      
1487        
1488          
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503  
1504  <li class="nav-item">
1505    <a class="nav-link "
1506       title="Heat exchanger simplified" href="tutorials-heat-exchanger-simplified.html">
1507       Heat exchanger simplified
1508    </a>
1509  </li>
1510
1511
1512          
1513        
1514      
1515        
1516          
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531  
1532  <li class="nav-item">
1533    <a class="nav-link "
1534       title="Multiple perpendicular flaps" href="tutorials-multiple-perpendicular-flaps.html">
1535       Multiple perpendicular flaps
1536    </a>
1537  </li>
1538
1539
1540          
1541        
1542      
1543        
1544          
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559  
1560  <li class="nav-item">
1561    <a class="nav-link "
1562       title="Oscillator" href="tutorials-oscillator.html">
1563       Oscillator
1564    </a>
1565  </li>
1566
1567
1568          
1569        
1570      
1571        
1572          
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587  
1588  <li class="nav-item">
1589    <a class="nav-link "
1590       title="Oscillator overlap" href="tutorials-oscillator-overlap.html">
1591       Oscillator overlap
1592    </a>
1593  </li>
1594
1595
1596          
1597        
1598      
1599        
1600          
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615  
1616  <li class="nav-item">
1617    <a class="nav-link "
1618       title="Partitioned Burger's Equation" href="tutorials-partitioned-burgers-1d.html">
1619       Partitioned Burger's Equation
1620    </a>
1621  </li>
1622
1623
1624          
1625        
1626      
1627        
1628          
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643  
1644  <li class="nav-item">
1645    <a class="nav-link "
1646       title="Partitioned elastic beam" href="tutorials-partitioned-elastic-beam.html">
1647       Partitioned elastic beam
1648    </a>
1649  </li>
1650
1651
1652          
1653            
1654              
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669  
1670  
1671
1672  
1673  
1674  
1675
1676  
1677    
1678  
1679
1680  
1681    
1682  
1683
1684  
1685    
1686      
1687      
1688    
1689      
1690      
1691    
1692      
1693      
1694    
1695      
1696      
1697    
1698      
1699      
1700    
1701      
1702      
1703    
1704  
1705
1706  <li class="nav-item">
1707    <a class="nav-link collapsed"
1708       title="Partitioned flow"
1709       data-bs-toggle="collapse" href="#sb-3-partitioned-flow"
1710       role="button"
1711       aria-expanded="false"
1712       aria-controls="sb-3-partitioned-flow">
1713       Partitioned flow
1714    </a>
1715    <ul class="collapse  sidebar-nav flex-column list-unstyled mb-0"
1716        id="sb-3-partitioned-flow" data-bs-parent="#sb-3-flow-over-a-heated-plate">
1717
1718      
1719
1720      
1721
1722      
1723
1724      
1725
1726      
1727        
1728          
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743  
1744  <li class="nav-item">
1745    <a class="nav-link "
1746       title="Partitioned flow over a b.f. step" href="tutorials-partitioned-backwards-facing-step.html">
1747       Partitioned flow over a b.f. step
1748    </a>
1749  </li>
1750
1751
1752        
1753      
1754        
1755          
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770  
1771  <li class="nav-item">
1772    <a class="nav-link "
1773       title="Partitioned flow over heated plate" href="tutorials-flow-over-heated-plate-partitioned-flow.html">
1774       Partitioned flow over heated plate
1775    </a>
1776  </li>
1777
1778
1779        
1780      
1781        
1782          
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797  
1798  <li class="nav-item">
1799    <a class="nav-link "
1800       title="Partitioned pipe" href="tutorials-partitioned-pipe.html">
1801       Partitioned pipe
1802    </a>
1803  </li>
1804
1805
1806        
1807      
1808        
1809          
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824  
1825  <li class="nav-item">
1826    <a class="nav-link "
1827       title="Partitioned pipe two-phase" href="tutorials-partitioned-pipe-two-phase.html">
1828       Partitioned pipe two-phase
1829    </a>
1830  </li>
1831
1832
1833        
1834      
1835        
1836          
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851  
1852  <li class="nav-item">
1853    <a class="nav-link "
1854       title="Partitioned pipe multiscale" href="tutorials-partitioned-pipe-multiscale.html">
1855       Partitioned pipe multiscale
1856    </a>
1857  </li>
1858
1859
1860        
1861      
1862        
1863          
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878  
1879  <li class="nav-item">
1880    <a class="nav-link "
1881       title="Water hammer" href="tutorials-water-hammer.html">
1882       Water hammer
1883    </a>
1884  </li>
1885
1886
1887        
1888      
1889    </ul>
1890  </li>
1891
1892
1893            
1894          
1895            
1896              
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911  
1912  
1913
1914  
1915  
1916  
1917
1918  
1919    
1920  
1921
1922  
1923    
1924  
1925
1926  
1927    
1928      
1929      
1930    
1931      
1932      
1933    
1934      
1935      
1936    
1937      
1938      
1939    
1940      
1941      
1942    
1943  
1944
1945  <li class="nav-item">
1946    <a class="nav-link collapsed"
1947       title="Partitioned heat conduction"
1948       data-bs-toggle="collapse" href="#sb-3-partitioned-heat-conduction"
1949       role="button"
1950       aria-expanded="false"
1951       aria-controls="sb-3-partitioned-heat-conduction">
1952       Partitioned heat conduction
1953    </a>
1954    <ul class="collapse  sidebar-nav flex-column list-unstyled mb-0"
1955        id="sb-3-partitioned-heat-conduction" data-bs-parent="#sb-3-partitioned-flow">
1956
1957      
1958
1959      
1960
1961      
1962
1963      
1964
1965      
1966        
1967          
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982  
1983  <li class="nav-item">
1984    <a class="nav-link "
1985       title="Basic variant" href="tutorials-partitioned-heat-conduction.html">
1986       Basic variant
1987    </a>
1988  </li>
1989
1990
1991        
1992      
1993        
1994          
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009  
2010  <li class="nav-item">
2011    <a class="nav-link "
2012       title="Complex variant" href="tutorials-partitioned-heat-conduction-complex.html">
2013       Complex variant
2014    </a>
2015  </li>
2016
2017
2018        
2019      
2020        
2021          
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036  
2037  <li class="nav-item">
2038    <a class="nav-link "
2039       title="Direct mesh access" href="tutorials-partitioned-heat-conduction-direct.html">
2040       Direct mesh access
2041    </a>
2042  </li>
2043
2044
2045        
2046      
2047        
2048          
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063  
2064  <li class="nav-item">
2065    <a class="nav-link "
2066       title="Overlapping Schwarz" href="tutorials-partitioned-heat-conduction-overlap.html">
2067       Overlapping Schwarz
2068    </a>
2069  </li>
2070
2071
2072        
2073      
2074        
2075          
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090  
2091  <li class="nav-item">
2092    <a class="nav-link "
2093       title="3D variant" href="tutorials-partitioned-heat-conduction-3d.html">
2094       3D variant
2095    </a>
2096  </li>
2097
2098
2099        
2100      
2101    </ul>
2102  </li>
2103
2104
2105            
2106          
2107            
2108              
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123  
2124  
2125
2126  
2127  
2128  
2129
2130  
2131    
2132  
2133
2134  
2135    
2136  
2137
2138  
2139    
2140      
2141      
2142    
2143      
2144      
2145    
2146  
2147
2148  <li class="nav-item">
2149    <a class="nav-link collapsed"
2150       title="Perpendicular flap"
2151       data-bs-toggle="collapse" href="#sb-3-perpendicular-flap"
2152       role="button"
2153       aria-expanded="false"
2154       aria-controls="sb-3-perpendicular-flap">
2155       Perpendicular flap
2156    </a>
2157    <ul class="collapse  sidebar-nav flex-column list-unstyled mb-0"
2158        id="sb-3-perpendicular-flap" data-bs-parent="#sb-3-partitioned-heat-conduction">
2159
2160      
2161
2162      
2163
2164      
2165
2166      
2167
2168      
2169        
2170          
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185  
2186  <li class="nav-item">
2187    <a class="nav-link "
2188       title="Basic variant" href="tutorials-perpendicular-flap.html">
2189       Basic variant
2190    </a>
2191  </li>
2192
2193
2194        
2195      
2196        
2197          
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212  
2213  <li class="nav-item">
2214    <a class="nav-link "
2215       title="Stress variant" href="tutorials-perpendicular-flap-stress.html">
2216       Stress variant
2217    </a>
2218  </li>
2219
2220
2221        
2222      
2223    </ul>
2224  </li>
2225
2226
2227            
2228          
2229        
2230      
2231        
2232          
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247  
2248  <li class="nav-item">
2249    <a class="nav-link "
2250       title="Quickstart" href="quickstart.html">
2251       Quickstart
2252    </a>
2253  </li>
2254
2255
2256          
2257        
2258      
2259        
2260          
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275  
2276  <li class="nav-item">
2277    <a class="nav-link "
2278       title="Resonant circuit" href="tutorials-resonant-circuit.html">
2279       Resonant circuit
2280    </a>
2281  </li>
2282
2283
2284          
2285        
2286      
2287        
2288          
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303  
2304  <li class="nav-item">
2305    <a class="nav-link "
2306       title="Two-scale heat conduction" href="tutorials-two-scale-heat-conduction.html">
2307       Two-scale heat conduction
2308    </a>
2309  </li>
2310
2311
2312          
2313        
2314      
2315        
2316          
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331  
2332  <li class="nav-item">
2333    <a class="nav-link "
2334       title="Turek-Hron FSI3" href="tutorials-turek-hron-fsi3.html">
2335       Turek-Hron FSI3
2336    </a>
2337  </li>
2338
2339
2340          
2341        
2342      
2343        
2344          
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359  
2360  <li class="nav-item">
2361    <a class="nav-link "
2362       title="Volume-coupled diffusion" href="tutorials-volume-coupled-diffusion.html">
2363       Volume-coupled diffusion
2364    </a>
2365  </li>
2366
2367
2368          
2369        
2370      
2371        
2372          
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387  
2388  <li class="nav-item">
2389    <a class="nav-link "
2390       title="Volume-coupled flow" href="tutorials-volume-coupled-flow.html">
2391       Volume-coupled flow
2392    </a>
2393  </li>
2394
2395
2396          
2397        
2398      
2399        
2400          
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415  
2416  <li class="nav-item">
2417    <a class="nav-link "
2418       title="Wolf-sheep-grass model with soil creep" href="tutorials-wolf-sheep-soil-creep.html">
2419       Wolf-sheep-grass model with soil creep
2420    </a>
2421  </li>
2422
2423
2424          
2425        
2426      
2427
2428      
2429
2430      
2431    </ul>
2432  </li>
2433
2434
2435      
2436    
2437  
2438</ul>
2439</nav>
2440
2441          </div>
2442          <main class="col-md-9" id="tg-sb-content">
2443            <div class="post-header">
2444   <h1 class="post-title-main">A handful of exciting tutorials</h1>
2445</div>
2446
2447
2448
2449<div class="post-content">
2450
2451    
2452    <div class="summary">
2453        <!-- https://github.com/jekyll/jekyll/issues/3571 -->
2454        A handful of ready-to-run cases for you to build upon.
2455
2456    </div>
2457    
2458
2459    <div class="row">
2460        <div class="col-md-9">
2461          
2462          <nav aria-label="table of contents">
2463          
2464          
2465<!-- this handles the automatic toc. use ## for subheads to auto-generate the on-page minitoc. if you use html tags, you must supply an ID for the heading element in order for it to appear in the minitoc. -->
2466<script>
2467$( document ).ready(function() {
2468  // Handler for .ready() called.
2469
2470    $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers:  'h2,h3,h4'  });
2471
2472/* this offset helps account for the space taken up by the floating toolbar. */
2473$('#toc').on('click', 'a', function() {
2474  var target = $(this.getAttribute('href'))
2475    , scroll_target = target.offset().top
2476
2477  $(window).scrollTop(scroll_target - 10);
2478  return false
2479})
2480  
2481});
2482</script>
2482
2483
2484<div id="toc"></div>
2485
2486          
2487          </nav>
2488          
2489        </div>
2490
2491        <div class="col-md-3">
2492          
2493          <aside>
2494            
2495                <div class="text-end">
2496                    <a target="_blank" rel="noopener" href="https://github.com/precice/precice.github.io/edit/master/content/tutorials/overview.md" class="btn btn-outline-secondary githubEditButton" role="button"><i class="fab fa-github fa-lg"></i> Edit me</a>
2497                </div>
2498            
2499            <div class="text-end">
2500              <small>Updated 13 Sep 26</small>
2501            </div>
2502          </aside>
2503          
2504        </div>
2505    </div>
2506
2507   <p>Tutorials are meant as starting points to build your own coupled simulations. Our collection has grown rapidly over the past few years and <a href="community-contribute-to-precice.html">your contribution is very welcome</a>!</p>
2508
2509<div class="alert alert-success" role="alert"><i class="fa fa-check-square"></i> <b>Tip:</b> 
2510Is this your your first time trying our preCICE? Read first the <a href="quickstart.html">Quickstart</a> guide or <a href="https://www.youtube.com/c/preCICECoupling/">watch a talk on YouTube</a>.
2511</div>
2512
2513<p>You can find all tutorial case files in the <a href="https://github.com/precice/tutorials">tutorials repository</a>. Get the <a href="https://github.com/precice/tutorials/releases/latest">latest release</a>, or clone the Git repository with the latest state, which makes it easier to get updates in the future or contribute back:</p>
2514
2515<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/precice/tutorials.git
2516</code></pre></div></div>
2517
2518<p>If you don’t need the full history (to save space and data), you can use the <code class="language-plaintext highlighter-rouge">--depth 1</code> option.
2519Releases originate from the <code class="language-plaintext highlighter-rouge">master</code> branch.</p>
2520
2521<h2 id="basic-cases">Basic cases</h2>
2522
2523<p>We recommend that you start from one of the following cases, which you can quickly run on your laptop:</p>
2524
2525<ul>
2526  <li><a href="tutorials-flow-over-heated-plate.html">Flow over a heated plate</a>: A <strong>conjugate heat transfer</strong> scenario. Try OpenFOAM, SU2, FEniCS, FEniCSx, Nutils, or DUNE-FEM.</li>
2527  <li><a href="tutorials-partitioned-heat-conduction.html">Partitioned heat conduction</a>: The mathematician’s dream: split the <strong>heat equation</strong> in two and glue it again. Pick your Dirichlet and Neumann solvers among FEniCS, FEniCSx, G+Smo, Nutils, and OpenFOAM.</li>
2528  <li>Flow in a channel with an elastic <a href="tutorials-perpendicular-flap.html">perpendicular flap</a>: A <strong>fluid-structure interaction</strong> scenario. Feel free to combine different solvers, among OpenFOAM, SU2, deal.II, FEniCS, Nutils, CalculiX, solids4Foam, and DUNE.</li>
2529</ul>
2530
2531<p style="text-align: center">
2532<a href="tutorials-flow-over-heated-plate.html" title="Tutorial: Flow over heated plate"><img src="images/tutorials-flow-over-heated-plate-example.png" style="margin-left:3%; max-width:31%; max-height:100px;" alt="Flow over heated plate" /></a>
2533<a href="tutorials-partitioned-heat-conduction.html" title="Tutorial: Partitioned heat conduction"><img src="images/tutorials-partitioned-heat-conduction-setup.png" style="max-width:31%; max-height:100px;" alt="Partitioned heat conduction" /></a>
2534<a href="tutorials-perpendicular-flap.html" title="Tutorial: Perpendicular flap"><img src="images/tutorials-perpendicular-flap-physics.png" style="margin-left:3%; max-width:31%; max-height:100px;" alt="Flow with a perpendicular flap" /></a>
2535</p>
2536
2537<h2 id="all-cases">All cases</h2>
2538
2539<p>In the following cases, you can explore different aspects of preCICE:</p>
2540
2541<ul>
2542  <li><a href="tutorials-aste-turbine.html">ASTE turbine</a>: An example case for ASTE to investigate different preCICE mappings using a turbine geometry.</li>
2543  <li><a href="tutorials-breaking-dam-2d.html">Breaking dam with flexible pillar 2D</a>: A two-phase flow fluid-structure interaction problem, with OpenFOAM and CalculiX.<
2543/li>
2544  <li>Channel transport collection
2545    <ul>
2546      <li><a href="tutorials-channel-transport.html">Basic variant</a>: A channel flow coupled to a transport (of, e.g., a chemistry species) in a uni-directional way, with Nutils.</li>
2547      <li><a href="tutorials-channel-transport-particles.html">Particles variant</a>: A channel flow (OpenFOAM, Nutils) coupled to a particles code (MercuryDPM) in a uni-directional way.</li>
2548      <li><a href="tutorials-channel-transport-reaction.html">Transport + reaction variant</a>: A channel flow coupled to a transport of a chemical species with reaction in a uni-directional way, with FEniCS.</li>
2549    </ul>
2550  </li>
2551  <li><a href="tutorials-elastic-tube-1d.html">Elastic tube 1D</a>: A 1D fluid-structure interaction scenario, with toy solvers in Python, C++, Fortran, and Rust.</li>
2552  <li><a href="tutorials-elastic-tube-3d.html">Elastic tube 3D</a>: A 3D fluid-structure interaction scenario, with OpenFOAM, CalculiX, and FEniCS.</li>
2553  <li><a href="tutorials-flow-around-controlled-moving-cylinder.html">Flow around controlled moving cylinder</a>: A flow around a rigid moving cylinder (OpenFOAM) with an FMI-based controller to dampen out the oscillation.</li>
2554  <li>Flow over a heated plate collection
2555    <ul>
2556      <li><a href="tutorials-flow-over-heated-plate.html">Basic variant</a> (as in “featured”)</li>
2557      <li><a href="tutorials-flow-over-heated-plate-nearest-projection.html">Nearest-projection mapping variant</a>: A nearest-projection mapping version, with two OpenFOAM solvers.</li>
2558      <li><a href="tutorials-flow-over-heated-plate-steady-state.html">Steady-state variant</a>: A steady-state version, with OpenFOAM and code_aster.</li>
2559      <li><a href="tutorials-flow-over-heated-plate-two-meshes.html">Two interface meshes variant</a>: A variant where the mesh used to transfer temperature is not the same as the one transferring heat fluxes. This allows us to use CalculiX as a solid solver.</li>
2560    </ul>
2561  </li>
2562  <li><a href="tutorials-free-flow-over-porous-media.html">Free flow over porous media</a>: A single-phase flow in and above a porous medium, with DuMux.</li>
2563  <li><a href="tutorials-heat-exchanger.html">Heat exchanger</a>: A three-field conjugate heat transfer case (explicit coupling, steady state, Robin-Robin coupling), with OpenFOAM and CalculiX.</li>
2564  <li><a href="tutorials-heat-exchanger-simplified.html">Heat exchanger: simplified</a>: A simplified version of the heat exchanger tutorial. Apart from a simpler geometry, that case is transient and using the implicit multi-coupling scheme, with Dirichlet-Neumann coupling.</li>
2565  <li><a href="tutorials-multiple-perpendicular-flaps.html">Multiple perpendicular flaps</a>: A three-field fluid-structure interaction case (fully implicit coupling, transient), with OpenFOAM and deal.II.</li>
2566  <li><a href="tutorials-oscillator.html">Oscillator</a>: A simple mass-spring oscillator with two masses, coupling two instances of a Python solver or of the FMI Runner.</li>
2567  <li><a href="tutorials-oscillator-overlap.html">Oscillator overlap</a>: An overlapping Schwartz method variant of the Oscillator tutorial, coupling two Dirichlet participants in Python.</li>
2568  <li><a href="tutorials-partitioned-burgers-1d.html">Partitioned Burger’s Equation 1D</a>: Coupling a 1D Burger’s equation solver to a neural network surrogate model, both written in Python.</li>
2569  <li><a href="tutorials-partitioned-elastic-beam.html">Partitioned elastic beam</a>: An experimental structure-structure coupling scenario, with two CalculiX solvers.</li>
2570  <li>Partitioned flow collection
2571    <ul>
2572      <li><a href="tutorials-partitioned-backwards-facing-step.html">Partitioned flow over a backwards-facing step</a>: A fluid-fluid coupling scenario, demonstrating inlet-outlet boundary conditions in OpenFOAM.</li>
2573      <li><a href="tutorials-flow-over-heated-plate-partitioned-flow.html">Partitioned flow over a heated plate</a>: A three-participant case, similar to the flow over a heated plate with OpenFOAM solvers, but with a partitioned channel flow.</li>
2574      <li><a href="tutorials-partitioned-pipe.html">Partitioned pipe</a>: A fluid-fluid coupling scenario, with two OpenFOAM solvers.</li>
2575      <li><a href="tutorials-partitioned-pipe-two-phase.html">Partitioned pipe two-phae</a>
2575: A two-phase variant of the partitioned pipe tutorial.</li>
2576      <li><a href="tutorials-partitioned-pipe-multiscale.html">Partitioned pipe multiscale</a>: A geometric multiscale tutorial coupling a 1D with a 3D pipe in Nutils and OpenFOAM.</li>
2577      <li><a href="tutorials-water-hammer.html">Water hammer</a>: A geometric multiscale tutorial coupling two 1D and 3D pipes in Nutils and OpenFOAM.</li>
2578    </ul>
2579  </li>
2580  <li>Partitioned heat conduction collection
2581    <ul>
2582      <li><a href="tutorials-partitioned-heat-conduction.html">Basic variant</a> (as in “featured”)</li>
2583      <li><a href="tutorials-partitioned-heat-conduction-complex.html">Complex variant</a>: A partitioned heat conduction case with FEniCS, showcasing advanced features and geometries.</li>
2584      <li><a href="tutorials-partitioned-heat-conduction-direct.html">Direct mesh access variant</a>: A partitioned heat conduction case with Nutils and G+Smo, showcasing the direct mesh access feature.</li>
2585      <li><a href="tutorials-partitioned-heat-conduction-overlap.html">Overlapping Schwarz variant</a>: An overlapping Schwarz method of the partitioned heat conduction case, coupling two Dirichlet participants implemented in FEniCS.</li>
2586      <li><a href="tutorials-partitioned-heat-conduction-3d.html">3D variant</a>: A three-dimensional variant of the basic tutorial, with FEniCSx.</li>
2587    </ul>
2588  </li>
2589  <li>Perpendicular flap collection
2590    <ul>
2591      <li><a href="tutorials-perpendicular-flap.html">Basic variant</a> (as in “featured”)</li>
2592      <li><a href="tutorials-perpendicular-flap-stress.html">Stress variant</a>: Exchanging stresses instead of forces, coupling OpenFOAM and G+Smo.</li>
2593    </ul>
2594  </li>
2595  <li><a href="tutorials-resonant-circuit.html">Resonant circuit</a>: The basic LC circuit, with MATLAB, Python, and Julia based solvers.</li>
2596  <li><a href="tutorials-turek-hron-fsi3.html">Turek-Hron FSI3</a>: The well-known fluid-structure interaction benchmark, with OpenFOAM and deal.II. Nutils participants are also available.</li>
2597  <li><a href="tutorials-two-scale-heat-conduction.html">Two-scale heat conduction</a>: A heat conduction scenario with an underlying micro-structure which is resolved to get the constitutive properties on the macro scale. Coupling DuMux and Nutils based solvers.</li>
2598  <li><a href="tutorials-volume-coupled-diffusion.html">Volume-coupled diffusion</a>: An experimental volume coupling scenario, with two FEniCS solvers.</li>
2599  <li><a href="tutorials-volume-coupled-flow.html">Volume-coupled flow</a>: An experimental volume coupling scenario, coupling a source term coded in Nutils with a flow in OpenFOAM.</li>
2600  <li><a href="tutorials-wolf-sheep-soil-creep.html">Wolf-sheep-grass model with soil creep</a>: An agent-based wolf-sheep-grass model in MESA coupled with a soil creep model in Landlab. A simplified and standalone Landlab implementation, as well as a FEniCSx-based solver are also available.</li>
2601</ul>
2602
2603<h2 id="community-projects">Community projects</h2>
2604
2605<p>Apart from these simple tutorial cases, the community has tried preCICE in different setups. Check out our new <a href="https://precice.discourse.group/c/community-projects/11">community projects</a> section in our forum, or read the <a href="community-projects.html">community stories</a>.</p>
2606
2607<h2 id="general-hints">General hints</h2>
2608
2609<p>You can start any tutorial by opening multiple terminals, navigating to each participant case, and running <code class="language-plaintext highlighter-rouge">./run.sh</code>. To make the “multiple terminals” part easier, it is often convenient to use a terminal multiplexer, such as <a href="https://gnunn1.github.io/tilix-web/">Tilix</a> or <a href="https://github.com/tmux/tmux/wiki">tmux</a>.</p>
2610
2611<p>Before running a case again, cleanup previous results with the included cleaning scripts.</p>
2612
2613<p>Are you wondering how to visualize the various results generated? Have a look in our <a href="tutorials-visualization.html">visualization hints</a>.</p>
2614
2615
2616    
2617
2618
2619
2620<!-- Breadcrumb metadata -->
2621
2622<script type="application/ld+json">
2623{
2624"@context": "https://schema.org",
2625"@type": "BreadcrumbList",
2626"itemListElement": [
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639{
2640  "@type": "ListItem",
2641  "position": 1,
2642  "name": "Tutorials",
2643  "item": "https://precice.org/tutorials.html"
2644}
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657,{
2658  "@type": "ListItem",
2659  "position": 2,
2660  "name": "Overview",
2661  "item": "https://precice.org/tutorials.html"
2662}
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777]}
2778</script>
2778
2779
2780
2781</div>
2782
2783
2784          </main>
2785        </div>
2786        
2787    </div>
2788    <footer class="background-dark">
2789  <div class="container">
2790
2791
2792    <div class="row">
2793      <div class="col-12 col-sm-10 col-md-6 col-lg-5 col-xl-4 bg-white rounded-4 p-4 mx-auto mb-5">
2794        <h2 class="text-center fs-5 fw-medium mt-1 mb-3 text-dark" style="font-family: 'Fira Sans', Roboto, sans-serif;">The preCICE newsletter</h2>
2795        
2795<script charset="utf-8" type="text/javascript" src="https://js.mailercloud.com/form/form.js"></script>
vendor: 1 bytes, line 2795
2795
2796<script>
2797(function() {
2798  mcform.create({
2799    formId: "V3dEdUAzMTQ0NkAwMDAwMA==",
2800    targetElement: "form_element_id"
2801  })
2802})();
2803</script>
2803
2804
2805      </div>
2806    </div>
2807
2808
2809    <div class="row text-center">
2810      <div class="col-md-4">
2811        <nav aria-label="Footer left">
2812          <ul class="list-unstyled">
2813            <li>
2814              <a href="fundamentals-literature-guide.html">Cite preCICE</a>
2815            </li>
2816            <li>
2817              <a href="community-contribute-to-precice.html">Contribute</a>
2818            </li>
2819            <li>
2820              <a href="community-support-precice.html">Get support</a>
2821            </li>
2822            <li>
2823              <a href="community-training.html">Get training</a>
2824            </li>
2825          </ul>
2826        </nav>
2827      </div>
2828
2829      <div class="col-md-4">
2830        <nav aria-label="Footer right">
2831          <ul class="list-unstyled">
2832            <li>
2833              <a class="no-icon" href="https://precice.discourse.group">Forum on Discourse</a>
2834            </li>
2835            <li>
2836              <a class="no-icon" href="https://github.com/precice">preCICE on GitHub</a>
2837            </li>
2838            <li>
2839              <a href="fundamentals-license.html">License</a>
2840            </li>
2841            <li>
2842              <a href="about.html">Impressum / Legal</a>
2843            </li>
2844          </ul>
2845        </nav>
2846      </div>
2847
2848      <div class="col-md-4">
2849        <p>
2850        <a class="no-icon" rel="license" href="https://creativecommons.org/licenses/by/4.0/">
2851          <img alt="This work is licensed under a Creative Commons Attribution 4.0 International License." src="images/licensebutton-by-40_88x31.png" />
2852        </a>
2853        </p>
2854        <p>
2855        Page last updated: Sep 13, 2026<br>
2856        Site last updated: Oct 1, 2026
2857        </p>
2858        <p>
2859        <i class="fas fa-shield-halved" aria-hidden="true"></i> This website does not use cookies
2860        </p>
2861      </div>
2862    </div>
2863  </div>
2864  
2864<script src="/js/copy-code.js"></script>
2864
2865</footer>
2866
2867    <button id="scroll-to-top" class="scroll-to-top" aria-label="Scroll to top">
2868  <i class="fa fa-chevron-up"></i>
2869</button>
2870
2871<style>
2872.scroll-to-top {
2873  position: fixed;
2874  bottom: 30px;
2875  right: 30px;
2876  width: 45px;
2877  height: 45px;
2878  border-radius: 50%;
2879  background-color: #0066cc;
2880  color: white;
2881  border: none;
2882  cursor: pointer;
2883  opacity: 0;
2884  visibility: hidden;
2885  transition: opacity 0.3s ease, visibility 0.3s ease, background-color 0.3s ease;
2886  z-index: 1000;
2887  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
2888}
2889
2890.scroll-to-top:hover {
2891  background-color: #0052a3;
2892}
2893
2894.scroll-to-top.visible {
2895  opacity: 1;
2896  visibility: visible;
2897}
2898
2899@media (max-width: 768px) {
2900  .scroll-to-top {
2901    bottom: 20px;
2902    right: 20px;
2903    width: 40px;
2904    height: 40px;
2905  }
2906}
2907
2908@media (max-width: 480px) {
2909  .scroll-to-top {
2910    bottom: 15px;
2911    right: 15px;
2912    width: 35px;
2913    height: 35px;
2914    font-size: 14px;
2915  }
2916}
2917</style>
2918
2919<script>
2920(function() {
2921  const scrollBtn = document.getElementById('scroll-to-top');
2922  const scrollThreshold = 300; // Show button after scrolling 300px
2923
2924  // Show/hide button on scroll
2925  window.addEventListener('scroll', function() {
2926    if (window.pageYOffset > scrollThreshold) {
2927      scrollBtn.classList.add('visible');
2928    } else {
2929      scrollBtn.classList.remove('visible');
2930    }
2931  });
2932
2933  // Scroll to top on click
2934  scrollBtn.addEventListener('click', function() {
2935    window.scrollTo({
2936      top: 0,
2937      behavior: 'smooth'
2938    });
2939  });
2940})();
2941</script>
2941
2942
2943
2944</body>
2945
2946</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.