-
Notifications
You must be signed in to change notification settings - Fork 112
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-01-11T16:12:41","documenter_version":"1.2.1"}} | ||
{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-02-29T14:20:09","documenter_version":"1.2.1"}} |
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Coupling · Trixi.jl</title><meta name="title" content="Coupling · Trixi.jl"/><meta property="og:title" content="Coupling · Trixi.jl"/><meta property="twitter:title" content="Coupling · Trixi.jl"/><meta name="description" content="Documentation for Trixi.jl."/><meta property="og:description" content="Documentation for Trixi.jl."/><meta property="twitter:description" content="Documentation for Trixi.jl."/><meta property="og:url" content="https://trixi-framework.github.io/Trixi.jl/stable/multi-physics_coupling/"/><meta property="twitter:url" content="https://trixi-framework.github.io/Trixi.jl/stable/multi-physics_coupling/"/><link rel="canonical" href="https://trixi-framework.github.io/Trixi.jl/stable/multi-physics_coupling/"/><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../search_index.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../">Trixi.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><span class="tocitem">Getting started</span><ul><li><a class="tocitem" href="../overview/">Overview</a></li><li><a class="tocitem" href="../visualization/">Visualization</a></li><li><a class="tocitem" href="../restart/">Restart simulation</a></li></ul></li><li><span class="tocitem">Tutorials</span><ul><li><a class="tocitem" href="../tutorials/introduction/">Introduction</a></li><li><input class="collapse-toggle" id="menuitem-3-2" type="checkbox"/><label class="tocitem" for="menuitem-3-2"><span class="docs-label">1 First steps in Trixi.jl</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../tutorials/first_steps/getting_started/">1.1 Getting started</a></li><li><a class="tocitem" href="../tutorials/first_steps/create_first_setup/">1.2 Create first setup</a></li><li><a class="tocitem" href="../tutorials/first_steps/changing_trixi/">1.3 Changing Trixi.jl itself</a></li></ul></li><li><a class="tocitem" href="../tutorials/behind_the_scenes_simulation_setup/">2 Behind the scenes of a simulation setup</a></li><li><a class="tocitem" href="../tutorials/scalar_linear_advection_1d/">3 Introduction to DG methods</a></li><li><a class="tocitem" href="../tutorials/DGSEM_FluxDiff/">4 DGSEM with flux differencing</a></li><li><a class="tocitem" href="../tutorials/shock_capturing/">5 Shock capturing with flux differencing and stage limiter</a></li><li><a class="tocitem" href="../tutorials/non_periodic_boundaries/">6 Non-periodic boundaries</a></li><li><a class="tocitem" href="../tutorials/DGMulti_1/">7 DG schemes via <code>DGMulti</code> solver</a></li><li><a class="tocitem" href="../tutorials/DGMulti_2/">8 Other SBP schemes (FD, CGSEM) via <code>DGMulti</code> solver</a></li><li><a class="tocitem" href="../tutorials/upwind_fdsbp/">9 Upwind FD SBP schemes</a></li><li><a class="tocitem" href="../tutorials/adding_new_scalar_equations/">10 Adding a new scalar conservation law</a></li><li><a class="tocitem" href="../tutorials/adding_nonconservative_equation/">11 Adding a non-conservative equation</a></li><li><a class="tocitem" href="../tutorials/parabolic_terms/">12 Parabolic terms</a></li><li><a class="tocitem" href="../tutorials/adding_new_parabolic_terms/">13 Adding new parabolic terms</a></li><li><a class="tocitem" href="../tutorials/adaptive_mesh_refinement/">14 Adaptive mesh refinement</a></li><li><a class="tocitem" href="../tutorials/structured_mesh_mapping/">15 Structured mesh with curvilinear mapping</a></li><li><a class="tocitem" href="../tutorials/hohqmesh_tutorial/">16 Unstructured meshes with HOHQMesh.jl</a></li><li><a class="tocitem" href="../tutorials/p4est_from_gmsh/">17 P4est mesh from gmsh</a></li><li><a class="tocitem" href="../tutorials/time_stepping/">18 Explicit time stepping</a></li><li><a class="tocitem" href="../tutorials/differentiable_programming/">19 Differentiable programming</a></li><li><a class="tocitem" href="../tutorials/custom_semidiscretization/">20 Custom semidiscretizations</a></li></ul></li><li><span class="tocitem">Basic building blocks</span><ul><li><input class="collapse-toggle" id="menuitem-4-1" type="checkbox"/><label class="tocitem" for="menuitem-4-1"><span class="docs-label">Meshes</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../meshes/tree_mesh/">Tree mesh</a></li><li><a class="tocitem" href="../meshes/structured_mesh/">Structured mesh</a></li><li><a class="tocitem" href="../meshes/unstructured_quad_mesh/">Unstructured mesh</a></li><li><a class="tocitem" href="../meshes/p4est_mesh/">P4est-based mesh</a></li><li><a class="tocitem" href="../meshes/dgmulti_mesh/">DGMulti mesh</a></li></ul></li><li><a class="tocitem" href="../time_integration/">Time integration</a></li><li><a class="tocitem" href="../callbacks/">Callbacks</a></li><li class="is-active"><a class="tocitem" href>Coupling</a><ul class="internal"><li><a class="tocitem" href="#Converter-coupling"><span>Converter coupling</span></a></li><li><a class="tocitem" href="#Warning-about-binary-compatibility"><span>Warning about binary compatibility</span></a></li></ul></li></ul></li><li><span class="tocitem">Advanced topics & developers</span><ul><li><a class="tocitem" href="../conventions/">Conventions</a></li><li><a class="tocitem" href="../development/">Development</a></li><li><a class="tocitem" href="../github-git/">GitHub & Git</a></li><li><a class="tocitem" href="../styleguide/">Style guide</a></li><li><a class="tocitem" href="../testing/">Testing</a></li><li><a class="tocitem" href="../performance/">Performance</a></li><li><a class="tocitem" href="../parallelization/">Parallelization</a></li></ul></li><li><a class="tocitem" href="../troubleshooting/">Troubleshooting and FAQ</a></li><li><span class="tocitem">Reference</span><ul><li><a class="tocitem" href="../reference-trixi/">Trixi.jl</a></li><li><a class="tocitem" href="../reference-trixibase/">TrixiBase.jl</a></li><li><a class="tocitem" href="../reference-trixi2vtk/">Trixi2Vtk.jl</a></li></ul></li><li><a class="tocitem" href="../authors/">Authors</a></li><li><a class="tocitem" href="../contributing/">Contributing</a></li><li><a class="tocitem" href="../code_of_conduct/">Code of Conduct</a></li><li><a class="tocitem" href="../license/">License</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Basic building blocks</a></li><li class="is-active"><a href>Coupling</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Coupling</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/trixi-framework/Trixi.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/trixi-framework/Trixi.jl/blob/main/docs/src/multi-physics_coupling.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="multi-physics-coupling"><a class="docs-heading-anchor" href="#multi-physics-coupling">Multi-physics coupling</a><a id="multi-physics-coupling-1"></a><a class="docs-heading-anchor-permalink" href="#multi-physics-coupling" title="Permalink"></a></h1><p>A complex simulation can consist of different spatial domains in which different equations are being solved, different numerical methods being used or the grid structure is different. One example would be a fluid in a tank and an extended hot plate attached to it. We would then like to solve the Navier-Stokes equations in the fluid domain and the heat conduction equations in the plate. The coupling would happen at the interface through the exchange of thermal energy.</p><h2 id="Converter-coupling"><a class="docs-heading-anchor" href="#Converter-coupling">Converter coupling</a><a id="Converter-coupling-1"></a><a class="docs-heading-anchor-permalink" href="#Converter-coupling" title="Permalink"></a></h2><p>It may happen that the two systems to be coupled do not share any variables, but share some of the physics. In such a situation, the same physics is just represented in a different form and with a different set of variables. This is the case, for instance assuming two domains, if there is a fluid system in one domain and a Vlasov system in the other domain. In that case we would have variables representing distribution functions of the Vlasov system on one side and variables representing the mechanical quantities, like density, of the fluid system. To translate the fields from one description to the other one needs to use converter functions. These functions need to be hand tailored by the user in the elixir file where each pair of coupled systems requires two coupling functions, one for each direction.</p><p>In the general case, we have a system <span>$A$</span> with <span>$m$</span> variables <span>$u_{A,i}, \: i = 1, \dots, m$</span> and another system <span>$B$</span> with <span>$n$</span> variables <span>$u_{B,j}, \: j = 1, \dots, n$</span>. We then define two coupling functions, one that transforms <span>$u_A$</span> into <span>$u_B$</span> and one that goes the other way.</p><p>In their minimal form they take the position vector <span>$x$</span>, state vector <span>$u$</span> and the equations of the two coupled systems and return the transformed variables. By passing the equations we can make use of their parameters, if they are required. Examples can be seen in <code>examples/structured_2d_dgsem/elixir_advection_coupled.jl</code>.</p><h2 id="Warning-about-binary-compatibility"><a class="docs-heading-anchor" href="#Warning-about-binary-compatibility">Warning about binary compatibility</a><a id="Warning-about-binary-compatibility-1"></a><a class="docs-heading-anchor-permalink" href="#Warning-about-binary-compatibility" title="Permalink"></a></h2><p>Currently the coordinate values on the nodes can differ by machine precision when simulating the mesh and when splitting the mesh in multiple domains. This is an issue coming from the coordinate interpolation on the nodes. As a result, running a simulation in a single system and in two coupled domains may result in a difference of the order of the machine precision. While this is not an issue for most practical problems, it is best to keep this in mind when comparing test runs.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../callbacks/">« Callbacks</a><a class="docs-footer-nextpage" href="../conventions/">Conventions »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Thursday 29 February 2024 14:18">Thursday 29 February 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
Large diffs are not rendered by default.