Skip to content
This repository was archived by the owner on Jul 26, 2026. It is now read-only.

Repository files navigation

Archival Notice

Apollo has now been archived following the addition of MFEM support and MFEM-based electromagnetics examples to the core MOOSE framework. EM-relevant capabilities previously enabled through Apollo are now accessible from the core MOOSE framework, and development has now moved to the main MOOSE repository. Interested users can find out how to get started with MFEM-based electromagnetics simulations in MOOSE from https://mooseframework.inl.gov/syntax/MFEM/index.html.

This repository is no longer being actively updated; the following is left for reference for historic users.

Apollo

Apollo is a MOOSE-based application created for the scalable solution of finite element electromagnetics problems using the MFEM-based library Hephaestus, as part of the Aurora multiphysics package.

Apollo provides a MOOSE interface to the Hephaestus electromagnetic solvers and formulations, and allows MFEM based finite element problems to be customised and launched from the MOOSE user interface. This enables access to electromagnetic formulations relying on use of finite elements that are conformal to underlying electromagnetic fields, that are well supported in MFEM, but which have less support in MOOSE's native libMesh finite element library.

Apollo facilitates coupling between the extensive range of existing MOOSE physics modules and derived electromagnetic variables such as heat sources from Ohmic heating, allowing the simulation of systems such as induction heaters.

Apollo is still under active development and is being updated frequently.

Getting Started

Docker images of Apollo for Ubuntu with all dependencies are built weekly and uploaded to DockerHub, and can be downloaded via

docker pull alexanderianblair/apollo:master

Once downloaded, the image can be run in interactive mode with the command

docker run -it alexanderianblair/apollo:master

Additional information and options for using Docker can be found at this tutorial on the Docker website.

Alternatively, up-to-date images of only the current dependencies for Apollo can be downloaded from

docker pull alexanderianblair/apollo-deps:master

for those who wish to build Apollo themselves.

Dockerfiles used to build these images can be found in the apollo/docker directory.

Building Software and Tests

After downloading Apollo from this repository, first update the Hephaestus git submodule with

git submodule update --init --recursive

This step is not needed if using the supplied alexanderianblair/apollo container. After updating, build the Hephaestus library with

cd /opt/apollo/contrib/hephaestus/
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DMFEM_DIR=/opt/mfem/build ..
ninja

Apollo can then be built with the following commands from the top level apollo directory in either of the above containers:

make -j4 make test -j4

Running make test after Apollo is built will run the entire set of tests found in apollo/test. Running a specific test (or tests) is possible by using the apollo/run_tests python script and using the --re command line argument to pass in a regular expression satisfied by the names of the tests you wish to run; for example:

/opt/apollo/run_tests --re=CoupledFONodalMFEMVar

Electromagnetic Models

Apollo currently provides access to a range of electromagnetic formulations in MOOSE, for use in different regimes:

  • Definite curl-curl formulations in the time domain for solving low frequency problems using H(Curl) conforming FEs - AFormulation, HFormulation, EFormulation.
  • Mixed formulations in the time domain using H(Curl) and H1 conforming FEs for the representation of vector and scalar potentials respectively - AVFormulation.
  • Indefinite complex Maxwell problem in the frequency domain using H(Curl) conforming FEs (currently requires use of direct solvers, limiting scalability) - ComplexEFormulation and ComplexAFormulation.

Custom MFEM-based formulations and weak forms can also be developed based on CustomFormulation from Apollo.

More information on the available formulations can be found at https://aurora-multiphysics.github.io/apollo/

About

Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - aurora-multiphysics/apollo: Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library. · GitHub
Skip to content
This repository was archived by the owner on Jul 26, 2026. It is now read-only.

Repository files navigation

Archival Notice

Apollo has now been archived following the addition of MFEM support and MFEM-based electromagnetics examples to the core MOOSE framework. EM-relevant capabilities previously enabled through Apollo are now accessible from the core MOOSE framework, and development has now moved to the main MOOSE repository. Interested users can find out how to get started with MFEM-based electromagnetics simulations in MOOSE from https://mooseframework.inl.gov/syntax/MFEM/index.html.

This repository is no longer being actively updated; the following is left for reference for historic users.

Apollo

Apollo is a MOOSE-based application created for the scalable solution of finite element electromagnetics problems using the MFEM-based library Hephaestus, as part of the Aurora multiphysics package.

Apollo provides a MOOSE interface to the Hephaestus electromagnetic solvers and formulations, and allows MFEM based finite element problems to be customised and launched from the MOOSE user interface. This enables access to electromagnetic formulations relying on use of finite elements that are conformal to underlying electromagnetic fields, that are well supported in MFEM, but which have less support in MOOSE's native libMesh finite element library.

Apollo facilitates coupling between the extensive range of existing MOOSE physics modules and derived electromagnetic variables such as heat sources from Ohmic heating, allowing the simulation of systems such as induction heaters.

Apollo is still under active development and is being updated frequently.

Getting Started

Docker images of Apollo for Ubuntu with all dependencies are built weekly and uploaded to DockerHub, and can be downloaded via

docker pull alexanderianblair/apollo:master

Once downloaded, the image can be run in interactive mode with the command

docker run -it alexanderianblair/apollo:master

Additional information and options for using Docker can be found at this tutorial on the Docker website.

Alternatively, up-to-date images of only the current dependencies for Apollo can be downloaded from

docker pull alexanderianblair/apollo-deps:master

for those who wish to build Apollo themselves.

Dockerfiles used to build these images can be found in the apollo/docker directory.

Building Software and Tests

After downloading Apollo from this repository, first update the Hephaestus git submodule with

git submodule update --init --recursive

This step is not needed if using the supplied alexanderianblair/apollo container. After updating, build the Hephaestus library with

cd /opt/apollo/contrib/hephaestus/
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DMFEM_DIR=/opt/mfem/build ..
ninja

Apollo can then be built with the following commands from the top level apollo directory in either of the above containers:

make -j4 make test -j4

Running make test after Apollo is built will run the entire set of tests found in apollo/test. Running a specific test (or tests) is possible by using the apollo/run_tests python script and using the --re command line argument to pass in a regular expression satisfied by the names of the tests you wish to run; for example:

/opt/apollo/run_tests --re=CoupledFONodalMFEMVar

Electromagnetic Models

Apollo currently provides access to a range of electromagnetic formulations in MOOSE, for use in different regimes:

  • Definite curl-curl formulations in the time domain for solving low frequency problems using H(Curl) conforming FEs - AFormulation, HFormulation, EFormulation.
  • Mixed formulations in the time domain using H(Curl) and H1 conforming FEs for the representation of vector and scalar potentials respectively - AVFormulation.
  • Indefinite complex Maxwell problem in the frequency domain using H(Curl) conforming FEs (currently requires use of direct solvers, limiting scalability) - ComplexEFormulation and ComplexAFormulation.

Custom MFEM-based formulations and weak forms can also be developed based on CustomFormulation from Apollo.

More information on the available formulations can be found at https://aurora-multiphysics.github.io/apollo/

About

Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - aurora-multiphysics/apollo: Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library. · GitHub
Skip to content
This repository was archived by the owner on Jul 26, 2026. It is now read-only.

Repository files navigation

Archival Notice

Apollo has now been archived following the addition of MFEM support and MFEM-based electromagnetics examples to the core MOOSE framework. EM-relevant capabilities previously enabled through Apollo are now accessible from the core MOOSE framework, and development has now moved to the main MOOSE repository. Interested users can find out how to get started with MFEM-based electromagnetics simulations in MOOSE from https://mooseframework.inl.gov/syntax/MFEM/index.html.

This repository is no longer being actively updated; the following is left for reference for historic users.

Apollo

Apollo is a MOOSE-based application created for the scalable solution of finite element electromagnetics problems using the MFEM-based library Hephaestus, as part of the Aurora multiphysics package.

Apollo provides a MOOSE interface to the Hephaestus electromagnetic solvers and formulations, and allows MFEM based finite element problems to be customised and launched from the MOOSE user interface. This enables access to electromagnetic formulations relying on use of finite elements that are conformal to underlying electromagnetic fields, that are well supported in MFEM, but which have less support in MOOSE's native libMesh finite element library.

Apollo facilitates coupling between the extensive range of existing MOOSE physics modules and derived electromagnetic variables such as heat sources from Ohmic heating, allowing the simulation of systems such as induction heaters.

Apollo is still under active development and is being updated frequently.

Getting Started

Docker images of Apollo for Ubuntu with all dependencies are built weekly and uploaded to DockerHub, and can be downloaded via

docker pull alexanderianblair/apollo:master

Once downloaded, the image can be run in interactive mode with the command

docker run -it alexanderianblair/apollo:master

Additional information and options for using Docker can be found at this tutorial on the Docker website.

Alternatively, up-to-date images of only the current dependencies for Apollo can be downloaded from

docker pull alexanderianblair/apollo-deps:master

for those who wish to build Apollo themselves.

Dockerfiles used to build these images can be found in the apollo/docker directory.

Building Software and Tests

After downloading Apollo from this repository, first update the Hephaestus git submodule with

git submodule update --init --recursive

This step is not needed if using the supplied alexanderianblair/apollo container. After updating, build the Hephaestus library with

cd /opt/apollo/contrib/hephaestus/
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DMFEM_DIR=/opt/mfem/build ..
ninja

Apollo can then be built with the following commands from the top level apollo directory in either of the above containers:

make -j4 make test -j4

Running make test after Apollo is built will run the entire set of tests found in apollo/test. Running a specific test (or tests) is possible by using the apollo/run_tests python script and using the --re command line argument to pass in a regular expression satisfied by the names of the tests you wish to run; for example:

/opt/apollo/run_tests --re=CoupledFONodalMFEMVar

Electromagnetic Models

Apollo currently provides access to a range of electromagnetic formulations in MOOSE, for use in different regimes:

  • Definite curl-curl formulations in the time domain for solving low frequency problems using H(Curl) conforming FEs - AFormulation, HFormulation, EFormulation.
  • Mixed formulations in the time domain using H(Curl) and H1 conforming FEs for the representation of vector and scalar potentials respectively - AVFormulation.
  • Indefinite complex Maxwell problem in the frequency domain using H(Curl) conforming FEs (currently requires use of direct solvers, limiting scalability) - ComplexEFormulation and ComplexAFormulation.

Custom MFEM-based formulations and weak forms can also be developed based on CustomFormulation from Apollo.

More information on the available formulations can be found at https://aurora-multiphysics.github.io/apollo/

About

Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - aurora-multiphysics/apollo: Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library. · GitHub
Skip to content
This repository was archived by the owner on Jul 26, 2026. It is now read-only.

Repository files navigation

Archival Notice

Apollo has now been archived following the addition of MFEM support and MFEM-based electromagnetics examples to the core MOOSE framework. EM-relevant capabilities previously enabled through Apollo are now accessible from the core MOOSE framework, and development has now moved to the main MOOSE repository. Interested users can find out how to get started with MFEM-based electromagnetics simulations in MOOSE from https://mooseframework.inl.gov/syntax/MFEM/index.html.

This repository is no longer being actively updated; the following is left for reference for historic users.

Apollo

Apollo is a MOOSE-based application created for the scalable solution of finite element electromagnetics problems using the MFEM-based library Hephaestus, as part of the Aurora multiphysics package.

Apollo provides a MOOSE interface to the Hephaestus electromagnetic solvers and formulations, and allows MFEM based finite element problems to be customised and launched from the MOOSE user interface. This enables access to electromagnetic formulations relying on use of finite elements that are conformal to underlying electromagnetic fields, that are well supported in MFEM, but which have less support in MOOSE's native libMesh finite element library.

Apollo facilitates coupling between the extensive range of existing MOOSE physics modules and derived electromagnetic variables such as heat sources from Ohmic heating, allowing the simulation of systems such as induction heaters.

Apollo is still under active development and is being updated frequently.

Getting Started

Docker images of Apollo for Ubuntu with all dependencies are built weekly and uploaded to DockerHub, and can be downloaded via

docker pull alexanderianblair/apollo:master

Once downloaded, the image can be run in interactive mode with the command

docker run -it alexanderianblair/apollo:master

Additional information and options for using Docker can be found at this tutorial on the Docker website.

Alternatively, up-to-date images of only the current dependencies for Apollo can be downloaded from

docker pull alexanderianblair/apollo-deps:master

for those who wish to build Apollo themselves.

Dockerfiles used to build these images can be found in the apollo/docker directory.

Building Software and Tests

After downloading Apollo from this repository, first update the Hephaestus git submodule with

git submodule update --init --recursive

This step is not needed if using the supplied alexanderianblair/apollo container. After updating, build the Hephaestus library with

cd /opt/apollo/contrib/hephaestus/
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DMFEM_DIR=/opt/mfem/build ..
ninja

Apollo can then be built with the following commands from the top level apollo directory in either of the above containers:

make -j4 make test -j4

Running make test after Apollo is built will run the entire set of tests found in apollo/test. Running a specific test (or tests) is possible by using the apollo/run_tests python script and using the --re command line argument to pass in a regular expression satisfied by the names of the tests you wish to run; for example:

/opt/apollo/run_tests --re=CoupledFONodalMFEMVar

Electromagnetic Models

Apollo currently provides access to a range of electromagnetic formulations in MOOSE, for use in different regimes:

  • Definite curl-curl formulations in the time domain for solving low frequency problems using H(Curl) conforming FEs - AFormulation, HFormulation, EFormulation.
  • Mixed formulations in the time domain using H(Curl) and H1 conforming FEs for the representation of vector and scalar potentials respectively - AVFormulation.
  • Indefinite complex Maxwell problem in the frequency domain using H(Curl) conforming FEs (currently requires use of direct solvers, limiting scalability) - ComplexEFormulation and ComplexAFormulation.

Custom MFEM-based formulations and weak forms can also be developed based on CustomFormulation from Apollo.

More information on the available formulations can be found at https://aurora-multiphysics.github.io/apollo/

About

Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - aurora-multiphysics/apollo: Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library. · GitHub
Skip to content
This repository was archived by the owner on Jul 26, 2026. It is now read-only.

Repository files navigation

Archival Notice

Apollo has now been archived following the addition of MFEM support and MFEM-based electromagnetics examples to the core MOOSE framework. EM-relevant capabilities previously enabled through Apollo are now accessible from the core MOOSE framework, and development has now moved to the main MOOSE repository. Interested users can find out how to get started with MFEM-based electromagnetics simulations in MOOSE from https://mooseframework.inl.gov/syntax/MFEM/index.html.

This repository is no longer being actively updated; the following is left for reference for historic users.

Apollo

Apollo is a MOOSE-based application created for the scalable solution of finite element electromagnetics problems using the MFEM-based library Hephaestus, as part of the Aurora multiphysics package.

Apollo provides a MOOSE interface to the Hephaestus electromagnetic solvers and formulations, and allows MFEM based finite element problems to be customised and launched from the MOOSE user interface. This enables access to electromagnetic formulations relying on use of finite elements that are conformal to underlying electromagnetic fields, that are well supported in MFEM, but which have less support in MOOSE's native libMesh finite element library.

Apollo facilitates coupling between the extensive range of existing MOOSE physics modules and derived electromagnetic variables such as heat sources from Ohmic heating, allowing the simulation of systems such as induction heaters.

Apollo is still under active development and is being updated frequently.

Getting Started

Docker images of Apollo for Ubuntu with all dependencies are built weekly and uploaded to DockerHub, and can be downloaded via

docker pull alexanderianblair/apollo:master

Once downloaded, the image can be run in interactive mode with the command

docker run -it alexanderianblair/apollo:master

Additional information and options for using Docker can be found at this tutorial on the Docker website.

Alternatively, up-to-date images of only the current dependencies for Apollo can be downloaded from

docker pull alexanderianblair/apollo-deps:master

for those who wish to build Apollo themselves.

Dockerfiles used to build these images can be found in the apollo/docker directory.

Building Software and Tests

After downloading Apollo from this repository, first update the Hephaestus git submodule with

git submodule update --init --recursive

This step is not needed if using the supplied alexanderianblair/apollo container. After updating, build the Hephaestus library with

cd /opt/apollo/contrib/hephaestus/
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DMFEM_DIR=/opt/mfem/build ..
ninja

Apollo can then be built with the following commands from the top level apollo directory in either of the above containers:

make -j4 make test -j4

Running make test after Apollo is built will run the entire set of tests found in apollo/test. Running a specific test (or tests) is possible by using the apollo/run_tests python script and using the --re command line argument to pass in a regular expression satisfied by the names of the tests you wish to run; for example:

/opt/apollo/run_tests --re=CoupledFONodalMFEMVar

Electromagnetic Models

Apollo currently provides access to a range of electromagnetic formulations in MOOSE, for use in different regimes:

  • Definite curl-curl formulations in the time domain for solving low frequency problems using H(Curl) conforming FEs - AFormulation, HFormulation, EFormulation.
  • Mixed formulations in the time domain using H(Curl) and H1 conforming FEs for the representation of vector and scalar potentials respectively - AVFormulation.
  • Indefinite complex Maxwell problem in the frequency domain using H(Curl) conforming FEs (currently requires use of direct solvers, limiting scalability) - ComplexEFormulation and ComplexAFormulation.

Custom MFEM-based formulations and weak forms can also be developed based on CustomFormulation from Apollo.

More information on the available formulations can be found at https://aurora-multiphysics.github.io/apollo/

About

Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - aurora-multiphysics/apollo: Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library. · GitHub
Skip to content
This repository was archived by the owner on Jul 26, 2026. It is now read-only.

Repository files navigation

Archival Notice

Apollo has now been archived following the addition of MFEM support and MFEM-based electromagnetics examples to the core MOOSE framework. EM-relevant capabilities previously enabled through Apollo are now accessible from the core MOOSE framework, and development has now moved to the main MOOSE repository. Interested users can find out how to get started with MFEM-based electromagnetics simulations in MOOSE from https://mooseframework.inl.gov/syntax/MFEM/index.html.

This repository is no longer being actively updated; the following is left for reference for historic users.

Apollo

Apollo is a MOOSE-based application created for the scalable solution of finite element electromagnetics problems using the MFEM-based library Hephaestus, as part of the Aurora multiphysics package.

Apollo provides a MOOSE interface to the Hephaestus electromagnetic solvers and formulations, and allows MFEM based finite element problems to be customised and launched from the MOOSE user interface. This enables access to electromagnetic formulations relying on use of finite elements that are conformal to underlying electromagnetic fields, that are well supported in MFEM, but which have less support in MOOSE's native libMesh finite element library.

Apollo facilitates coupling between the extensive range of existing MOOSE physics modules and derived electromagnetic variables such as heat sources from Ohmic heating, allowing the simulation of systems such as induction heaters.

Apollo is still under active development and is being updated frequently.

Getting Started

Docker images of Apollo for Ubuntu with all dependencies are built weekly and uploaded to DockerHub, and can be downloaded via

docker pull alexanderianblair/apollo:master

Once downloaded, the image can be run in interactive mode with the command

docker run -it alexanderianblair/apollo:master

Additional information and options for using Docker can be found at this tutorial on the Docker website.

Alternatively, up-to-date images of only the current dependencies for Apollo can be downloaded from

docker pull alexanderianblair/apollo-deps:master

for those who wish to build Apollo themselves.

Dockerfiles used to build these images can be found in the apollo/docker directory.

Building Software and Tests

After downloading Apollo from this repository, first update the Hephaestus git submodule with

git submodule update --init --recursive

This step is not needed if using the supplied alexanderianblair/apollo container. After updating, build the Hephaestus library with

cd /opt/apollo/contrib/hephaestus/
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DMFEM_DIR=/opt/mfem/build ..
ninja

Apollo can then be built with the following commands from the top level apollo directory in either of the above containers:

make -j4 make test -j4

Running make test after Apollo is built will run the entire set of tests found in apollo/test. Running a specific test (or tests) is possible by using the apollo/run_tests python script and using the --re command line argument to pass in a regular expression satisfied by the names of the tests you wish to run; for example:

/opt/apollo/run_tests --re=CoupledFONodalMFEMVar

Electromagnetic Models

Apollo currently provides access to a range of electromagnetic formulations in MOOSE, for use in different regimes:

  • Definite curl-curl formulations in the time domain for solving low frequency problems using H(Curl) conforming FEs - AFormulation, HFormulation, EFormulation.
  • Mixed formulations in the time domain using H(Curl) and H1 conforming FEs for the representation of vector and scalar potentials respectively - AVFormulation.
  • Indefinite complex Maxwell problem in the frequency domain using H(Curl) conforming FEs (currently requires use of direct solvers, limiting scalability) - ComplexEFormulation and ComplexAFormulation.

Custom MFEM-based formulations and weak forms can also be developed based on CustomFormulation from Apollo.

More information on the available formulations can be found at https://aurora-multiphysics.github.io/apollo/

About

Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - aurora-multiphysics/apollo: Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library. · GitHub
Skip to content
This repository was archived by the owner on Jul 26, 2026. It is now read-only.

Repository files navigation

Archival Notice

Apollo has now been archived following the addition of MFEM support and MFEM-based electromagnetics examples to the core MOOSE framework. EM-relevant capabilities previously enabled through Apollo are now accessible from the core MOOSE framework, and development has now moved to the main MOOSE repository. Interested users can find out how to get started with MFEM-based electromagnetics simulations in MOOSE from https://mooseframework.inl.gov/syntax/MFEM/index.html.

This repository is no longer being actively updated; the following is left for reference for historic users.

Apollo

Apollo is a MOOSE-based application created for the scalable solution of finite element electromagnetics problems using the MFEM-based library Hephaestus, as part of the Aurora multiphysics package.

Apollo provides a MOOSE interface to the Hephaestus electromagnetic solvers and formulations, and allows MFEM based finite element problems to be customised and launched from the MOOSE user interface. This enables access to electromagnetic formulations relying on use of finite elements that are conformal to underlying electromagnetic fields, that are well supported in MFEM, but which have less support in MOOSE's native libMesh finite element library.

Apollo facilitates coupling between the extensive range of existing MOOSE physics modules and derived electromagnetic variables such as heat sources from Ohmic heating, allowing the simulation of systems such as induction heaters.

Apollo is still under active development and is being updated frequently.

Getting Started

Docker images of Apollo for Ubuntu with all dependencies are built weekly and uploaded to DockerHub, and can be downloaded via

docker pull alexanderianblair/apollo:master

Once downloaded, the image can be run in interactive mode with the command

docker run -it alexanderianblair/apollo:master

Additional information and options for using Docker can be found at this tutorial on the Docker website.

Alternatively, up-to-date images of only the current dependencies for Apollo can be downloaded from

docker pull alexanderianblair/apollo-deps:master

for those who wish to build Apollo themselves.

Dockerfiles used to build these images can be found in the apollo/docker directory.

Building Software and Tests

After downloading Apollo from this repository, first update the Hephaestus git submodule with

git submodule update --init --recursive

This step is not needed if using the supplied alexanderianblair/apollo container. After updating, build the Hephaestus library with

cd /opt/apollo/contrib/hephaestus/
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DMFEM_DIR=/opt/mfem/build ..
ninja

Apollo can then be built with the following commands from the top level apollo directory in either of the above containers:

make -j4 make test -j4

Running make test after Apollo is built will run the entire set of tests found in apollo/test. Running a specific test (or tests) is possible by using the apollo/run_tests python script and using the --re command line argument to pass in a regular expression satisfied by the names of the tests you wish to run; for example:

/opt/apollo/run_tests --re=CoupledFONodalMFEMVar

Electromagnetic Models

Apollo currently provides access to a range of electromagnetic formulations in MOOSE, for use in different regimes:

  • Definite curl-curl formulations in the time domain for solving low frequency problems using H(Curl) conforming FEs - AFormulation, HFormulation, EFormulation.
  • Mixed formulations in the time domain using H(Curl) and H1 conforming FEs for the representation of vector and scalar potentials respectively - AVFormulation.
  • Indefinite complex Maxwell problem in the frequency domain using H(Curl) conforming FEs (currently requires use of direct solvers, limiting scalability) - ComplexEFormulation and ComplexAFormulation.

Custom MFEM-based formulations and weak forms can also be developed based on CustomFormulation from Apollo.

More information on the available formulations can be found at https://aurora-multiphysics.github.io/apollo/

About

Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - aurora-multiphysics/apollo: Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library. · GitHub
Skip to content
This repository was archived by the owner on Jul 26, 2026. It is now read-only.

Repository files navigation

Archival Notice

Apollo has now been archived following the addition of MFEM support and MFEM-based electromagnetics examples to the core MOOSE framework. EM-relevant capabilities previously enabled through Apollo are now accessible from the core MOOSE framework, and development has now moved to the main MOOSE repository. Interested users can find out how to get started with MFEM-based electromagnetics simulations in MOOSE from https://mooseframework.inl.gov/syntax/MFEM/index.html.

This repository is no longer being actively updated; the following is left for reference for historic users.

Apollo

Apollo is a MOOSE-based application created for the scalable solution of finite element electromagnetics problems using the MFEM-based library Hephaestus, as part of the Aurora multiphysics package.

Apollo provides a MOOSE interface to the Hephaestus electromagnetic solvers and formulations, and allows MFEM based finite element problems to be customised and launched from the MOOSE user interface. This enables access to electromagnetic formulations relying on use of finite elements that are conformal to underlying electromagnetic fields, that are well supported in MFEM, but which have less support in MOOSE's native libMesh finite element library.

Apollo facilitates coupling between the extensive range of existing MOOSE physics modules and derived electromagnetic variables such as heat sources from Ohmic heating, allowing the simulation of systems such as induction heaters.

Apollo is still under active development and is being updated frequently.

Getting Started

Docker images of Apollo for Ubuntu with all dependencies are built weekly and uploaded to DockerHub, and can be downloaded via

docker pull alexanderianblair/apollo:master

Once downloaded, the image can be run in interactive mode with the command

docker run -it alexanderianblair/apollo:master

Additional information and options for using Docker can be found at this tutorial on the Docker website.

Alternatively, up-to-date images of only the current dependencies for Apollo can be downloaded from

docker pull alexanderianblair/apollo-deps:master

for those who wish to build Apollo themselves.

Dockerfiles used to build these images can be found in the apollo/docker directory.

Building Software and Tests

After downloading Apollo from this repository, first update the Hephaestus git submodule with

git submodule update --init --recursive

This step is not needed if using the supplied alexanderianblair/apollo container. After updating, build the Hephaestus library with

cd /opt/apollo/contrib/hephaestus/
mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DMFEM_DIR=/opt/mfem/build ..
ninja

Apollo can then be built with the following commands from the top level apollo directory in either of the above containers:

make -j4 make test -j4

Running make test after Apollo is built will run the entire set of tests found in apollo/test. Running a specific test (or tests) is possible by using the apollo/run_tests python script and using the --re command line argument to pass in a regular expression satisfied by the names of the tests you wish to run; for example:

/opt/apollo/run_tests --re=CoupledFONodalMFEMVar

Electromagnetic Models

Apollo currently provides access to a range of electromagnetic formulations in MOOSE, for use in different regimes:

  • Definite curl-curl formulations in the time domain for solving low frequency problems using H(Curl) conforming FEs - AFormulation, HFormulation, EFormulation.
  • Mixed formulations in the time domain using H(Curl) and H1 conforming FEs for the representation of vector and scalar potentials respectively - AVFormulation.
  • Indefinite complex Maxwell problem in the frequency domain using H(Curl) conforming FEs (currently requires use of direct solvers, limiting scalability) - ComplexEFormulation and ComplexAFormulation.

Custom MFEM-based formulations and weak forms can also be developed based on CustomFormulation from Apollo.

More information on the available formulations can be found at https://aurora-multiphysics.github.io/apollo/

About

Enabling 3D electromagnetics simulation in MOOSE, using the MFEM FE library.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages