Guidance for AI agents working in this repository. Read this before making changes.
A personal research website for Dr. Chi-Hong Isaac Yuen, built with Jekyll and the Minimal Mistakes theme. It is a project site published on GitHub Pages.
Isaacych/isaacych.github.io (https://isaacyuen.com/)https://isaacyuen.com/master) auto-deploys on every push via GitHub Pages.
There is no CI workflow, Dockerfile, or local build step — the build happens on
GitHub. Do not invent a local build pipeline._layouts, _includes, _sass), not pulled
as a gem/remote_theme. _config.yml intentionally has no theme: line.This is the most important guardrail. Do not attempt to gem install/bundle install
Jekyll or its dependencies, and do not try to build or serve the site locally.
Reasons:
jekyll/rouge/public_suffix stack (they require Ruby ≥ 2.7 / ≥ 3.2). Any
gem install attempt will fail and will leave stray artifacts (e.g. a new
~/.gem directory) that then have to be cleaned up.bundle install is broken on purpose: Gemfile says source; gemspec, but the
referenced gemspec no longer exists, so bundler aborts.Instead, verify changes by reasoning about the Jekyll theme from the files themselves
(layouts, includes, _config.yml, _data). If a live check is truly needed, preview the
already-deployed site at https://isaacyuen.com/.
Never write to the system Ruby gem dir (/Library/Ruby/Gems/...) or create per-user
gem directories.
index.md Homepage. Use `layout: home`. (See "Homepage naming" below.)
_pages/ Content pages (Markdown, `layout: single` by default via _config.yml):
group.md, news.md, publications.md, research.md
_layouts/ Minimal Mistakes layouts (theme). key ones:
home.html Homepage layout — renders ONLY `
<div class="page__hero"
style=" background-image: url('');"
>
<img src="/assets/images/Qwen_image_2.1_00026.png" alt="An AI-generated image illustrating an intense probe pulse ionizing and fragmenting a pumped molecule." class="page__hero-image">
<span class="page__hero-caption">An AI-generated image illustrating an intense probe pulse ionizing and fragmenting a pumped molecule. Created by Qwen-Image-2.1 on ComfyUI.
</span>
</div>
<div id="main" role="main">
<div class="sidebar sticky">
<div itemscope itemtype="https://schema.org/Person" class="h-card">
<div class="author__avatar">
<a href="https://isaacyuen.com/">
<img src="/assets/images/portrait.jpg" alt="C.H. Isaac Yuen" itemprop="image" class="u-photo">
</a>
</div>
<div class="author__content">
<h3 class="author__name p-name" itemprop="name">
<a class="u-url" rel="me" href="https://isaacyuen.com/" itemprop="url">C.H. Isaac Yuen</a>
</h3>
<div class="author__bio p-note" itemprop="description">
<p>Assistant Professor of Physics at Kennesaw State University.</p>
</div>
</div>
<div class="author__urls-wrapper">
<button class="btn btn--inverse">Follow</button>
<ul class="author__urls social-icons">
<li itemprop="homeLocation" itemscope itemtype="https://schema.org/Place">
<i class="fas fa-fw fa-location-dot" aria-hidden="true"></i> <span itemprop="name" class="p-locality">Marietta, Georgia, USA</span>
</li>
<li><a href="https://facultyweb.kennesaw.edu/cyuen2/" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fas fa-fw fa-link" aria-hidden="true"></i><span class="label">Website</span></a></li>
<li><a href="https://scholar.google.com/citations?user=1lWB0RwAAAAJ" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fas fa-fw fa-graduation-cap" aria-hidden="true"></i><span class="label">Google Scholar</span></a></li>
<li><a href="https://www.researchgate.net/profile/Ch-Yuen-2" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-researchgate" aria-hidden="true"></i><span class="label">ResearchGate</span></a></li>
<li><a href="https://github.com/Isaacych" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">GitHub</span></a></li>
<li>
<a href="mailto:cyuen2@kennesaw.edu" rel="me" class="u-email">
<meta itemprop="email" content="cyuen2@kennesaw.edu" />
<i class="fas fa-fw fa-square-envelope" aria-hidden="true"></i><span class="label">Email</span>
</a>
</li>
<!--
<li>
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fas fa-fw" aria-hidden="true"></i> Custom Social Profile Link
</a>
</li>
-->
</ul>
</div>
</div>
</div>
<article class="page h-entry" itemscope itemtype="https://schema.org/CreativeWork">
<meta itemprop="headline" content="Research">
<div class="page__inner-wrap">
<header>
<h1 id="page-title" class="page__title p-name" itemprop="headline">
<a href="https://isaacyuen.com/research/" itemprop="url">Research
</a>
</h1>
</header>
<section class="page__content e-content" itemprop="text">
<p>Electrons move through molecules on attosecond-to-femtosecond timescales, driving the flow of charge and energy that governs chemical and quantum phenomena. Understanding and controlling the electronic coherence behind this motion is essential for directing charge migration, steering photochemical reactions, and harnessing quantum effects. My research develops theoretical tools to diagnose and control electronic coherence, opening new pathways toward controlling quantum dynamics in molecules.</p>
<h2 id="creating-electronic-coherence-in-molecules">Creating electronic coherence in molecules</h2>
<figure class="third tunneling-sequence">
<img src="/assets/images/before_tunneling.svg" alt="Before tunneling ionization" />
<img src="/assets/images/during_tunneling.svg" alt="During tunneling ionization" />
<img src="/assets/images/after_tunneling.svg" alt="After tunneling ionization" />
<figcaption>Schematic of the multielectron tunneling ionization process: before, during, and after tunneling.
</figcaption>
</figure>
<ul>
<li>
<p>Before the laser field arrives, all electrons are bound under the Coulomb potential. Suppose the active electron (solid purple circle) will be ionized.</p>
</li>
<li>
<p>The laser field arrives and bends the Coulomb potential, and the active electron tunnels out. The remaining electrons are frozen.</p>
</li>
<li>
<p>After tunneling, the ionized electron is mainly driven by the laser, while the laser can excite the hole state.</p>
</li>
<li>
<p>An electron in red circles can undergo the same process, forming a different hole state.</p>
</li>
<li>
<p>Multielectron tunneling ionization thus creates a superposition of ionic states and their electronic coherence.</p>
</li>
</ul>
<p>Reference:</p>
<ol>
<li>C.H. Yuen, Nonadiabatic theory for subcycle ionic dynamics in multielectron tunneling ionization, Physical Review A 113 (4), 043125 (2026)</li>
</ol>
<h2 id="example-of-a-nitrogen-molecule">Example of a nitrogen molecule</h2>
<div class="media-cluster align-right">
<figure>
<video autoplay="" loop="" muted="" playsinline="" preload="metadata" class="synced-media">
<source src="/assets/images/N2p.mp4" type="video/mp4" />
</video>
<figcaption>Nuclear dynamics of N<sub>2</sub><sup>+</sup>. The vertical line indicates the equilibrium distance of N<sub>2</sub>.</figcaption>
</figure>
<figure>
<video autoplay="" loop="" muted="" playsinline="" preload="metadata" class="synced-media">
<source src="/assets/images/45_hole_dyn.mp4" type="video/mp4" />
</video>
<figcaption>Electron dynamics in N<sub>2</sub><sup>+</sup> molecule initiated by an intense few-cycle infrared laser.</figcaption>
</figure>
</div>
<script>
(function () {
function syncVideos() {
var vids = document.querySelectorAll('video.synced-media');
if (vids.length < 2) return;
var a = vids[0], b = vids[1];
var tolerance = 0.2;
function resetTogether() {
if (Math.abs(a.currentTime - b.currentTime) > tolerance) {
a.currentTime = 0;
b.currentTime = 0;
}
}
function resync() {
if (!a.paused && !b.paused &&
Math.abs(a.currentTime - b.currentTime) > tolerance) {
b.currentTime = a.currentTime;
}
}
function tryPlay() {
if (a.readyState >= 2 && b.readyState >= 2) {
resetTogether();
a.play().catch(function () {});
b.play().catch(function () {});
}
}
[a, b].forEach(function (v) {
v.addEventListener('canplay', tryPlay);
v.addEventListener('seeked', resync);
v.addEventListener('playing', resync);
v.addEventListener('timeupdate', resync);
});
// Ensure both start from the same point on initial page load
window.addEventListener('load', resetTogether);
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', syncVideos);
} else {
syncVideos();
}
})();
</script>
<ul>
<li>
<p>When an N<sub>2</sub> molecule is tunnel ionized by an intense few-cycle infrared pulse, it can form the <em>X</em><sup>2</sup>Σ<sub>g</sub><sup>+</sup> (red curve), <em>A</em><sup>2</sup>Π<sub>u</sub> (blue curve), and <em>B</em><sup>2</sup>Σ<sub>u</sub><sup>+</sup> (green curve) states of N<sub>2</sub><sup>+</sup>.</p>
</li>
<li>
<p>The nuclear wave packet moves around the minimum of the potential after the end of the pulse at <em>t</em> = 12 fs.</p>
</li>
<li>
<p>Differences in the nuclear motion of the respective states lead to a varying electronic coherence that is proportional to the nuclear overlap.</p>
</li>
<li>
<p>After around <em>t</em> = 20 fs, the nuclear wave packet of the <em>A</em><sup>2</sup>Π<sub>u</sub> state has little overlap with the other two states, so that the electron motion pauses.</p>
</li>
<li>
<p>As nuclear wave packets overlap well at a later time, the electron motion resumes.</p>
</li>
<li>
<p><strong>This kind of dynamics occurs for other diatomic molecules after ionization. But for polyatomic molecules, some nuclear wave packets may not return close to the equilibrium position due to extra degrees of freedom. Can we find long-lived electronic coherence in polyatomic molecules?</strong></p>
</li>
</ul>
<p>References:</p>
<ol>
<li>C.H. Yuen, Nonadiabatic theory for subcycle ionic dynamics in multielectron tunneling ionization, Physical Review A 113 (4), 043125 (2026)</li>
<li>C.H. Yuen and C.D. Lin, Coherence from multiorbital tunneling ionization of molecules, Physical Review A 108 (2), 023123 (2023)</li>
</ol>
<h2 id="controlling-the-electronic-coherence">Controlling the electronic coherence</h2>
<figure class="third tunneling-sequence">
<img src="/assets/images/two-level.png" alt="Effective two-level system of the nitrogen molecular ion" />
<img src="/assets/images/coh-amp.png" alt="Coherence amplitude as a function of laser intensity and wavelength" />
<img src="/assets/images/buildup-phase.png" alt="Subcycle buildup of the electronic coherence at 1341 nm and 1644 nm" />
<figcaption>Left: An effective two-level system formed by the <em>X</em><sup>2</sup>Σ<sub>g</sub><sup>+</sup> and <em>B</em><sup>2</sup>Σ<sub>u</sub><sup>+</sup> states of N<sub>2</sub><sup>+</sup>. Middle: Coherence amplitude as a function of laser intensity and wavelength, where the red dashed lines mark the constructive-buildup condition. Right: Subcycle buildup of the electronic coherence at 1341 nm and 1644 nm.
</figcaption>
</figure>
<ul>
<li>
<p>When the N<sub>2</sub> molecule is aligned with the laser polarization, tunnel ionization followed by excitation predominantly populates the <em>X</em><sup>2</sup>Σ<sub>g</sub><sup>+</sup> and <em>B</em><sup>2</sup>Σ<sub>u</sub><sup>+</sup> states of N<sub>2</sub><sup>+</sup>, which together form an effective two-level system.</p>
</li>
<li>
<p>The electronic coherence created by multielectron tunneling at different times interferes, so that it either builds up or cancels out. Can we control the timing of this interference to amplify the coherence?</p>
</li>
<li>
<p>When the laser frequency is much smaller than the energy separation between the <em>X</em><sup>2</sup>Σ<sub>g</sub><sup>+</sup> and <em>B</em><sup>2</sup>Σ<sub>u</sub><sup>+</sup> states, strong-field excitation enters the <strong>adiabatic</strong> regime.</p>
</li>
<li>
<p>In this regime, the conditions for constructive and destructive buildup are given approximately by <em>E</em><sub>XB</sub> + <em>α</em> = (2<em>n</em> + 1)<em>ω</em> and <em>E</em><sub>XB</sub> + <em>α</em> = 2<em>nω</em>, respectively, where <em>E</em><sub>XB</sub> is the energy separation between the two states, <em>α</em> is the AC Stark shift, and <em>n</em> is an integer.</p>
</li>
<li>
<p>As an example, when the peak laser intensity is 2.0 × 10<sup>14</sup> W/cm<sup>2</sup>, the coherence builds up constructively every half optical cycle for a 1644 nm laser, whereas it interferes destructively for a 1341 nm laser. Their final coherence amplitudes differ by five orders of magnitude.</p>
</li>
<li>
<p><strong>Can this control scheme be extended to other molecules?</strong></p>
</li>
</ul>
<p>Reference:</p>
<ol>
<li>C.H. Yuen, Enhanced excited-state population and coherence via adiabatic tunneling ionization and excitation, Physical Review A 113 (1), 013125 (2026)</li>
</ol>
<h2 id="probing-electronic-coherence-in-molecules">Probing electronic coherence in molecules</h2>
<div class="media-cluster align-right">
<figure>
<img src="/assets/images/ATAS.png" alt="Attosecond transient absorption spectrogram of the nitrogen molecular ion" />
<figcaption>Attosecond transient absorption spectrogram of N<sub>2</sub><sup>+</sup> as a function of the pump-probe delay.</figcaption>
</figure>
<figure>
<img src="/assets/images/KER_t.png" alt="Kinetic energy release spectrum of the ionic fragments as a function of time delay" />
<figcaption>Kinetic energy release (KER) spectrum of the ionic fragments from strong-field dissociative sequential double ionization as a function of the pump-probe delay.</figcaption>
</figure>
</div>
<ul>
<li>
<p>We start electron motion with one laser pulse, wait for a controlled time, and then take a “snapshot” with a second pulse. By combining snapshots taken at many different times, we create a movie of how electrons move inside a molecule.</p>
</li>
<li>
<p>One way to probe the electron motion is attosecond transient absorption spectroscopy (ATAS). An isolated attosecond pulse interacts with the molecular ion at a chosen delay after the pump pulse. The electronic coherence leaves characteristic fingerprints on the absorption spectrum of the attosecond pulse, allowing us to track how the electronic wave packet evolves in time.</p>
</li>
<li>
<p>In the example of N<sub>2</sub><sup>+</sup>, only the coherence between the <em>A</em><sup>2</sup>Π<sub>u</sub> and <em>B</em><sup>2</sup>Σ<sub>u</sub><sup>+</sup> states is imprinted in the absorption band at 391 eV.</p>
</li>
<li>
<p>Another approach is called strong-field dissociative sequential double ionization (DSDI). It uses an intense infrared laser pulse arriving after the pump pulse. This pulse first drives transitions between ionic electronic states, making the response sensitive to the amplitude of electronic coherence. It then removes a second electron from the excited states, creating a doubly charged molecular ion that breaks apart. By measuring the resulting ionic fragments, we obtain information about the underlying electron motion.</p>
</li>
<li>
<p>The oscillation in the kinetic energy release of N<sup>+</sup> + N<sup>+</sup> at different delays contains information about the all three pairs of electronic coherence.</p>
</li>
<li>
<p>Both approaches have important limitations. ATAS captures only part of the electronic motion, while DSDI provides access to a more complete picture but strongly perturbs the molecular ion during the measurement process. As a result, neither technique directly reveals the unperturbed electron dynamics. <strong>Can we design a probe that is both highly informative and minimally invasive?</strong></p>
</li>
</ul>
<p>References:</p>
<ol>
<li>
<p>C.H. Yuen and C.D. Lin, Probing vibronic coherence in charge migration in molecules using strong-field sequential double ionization, Physical Review A 109 (1), L011101 (2024)</p>
</li>
<li>
<p>C.H. Yuen and C.D. Lin, Theory of strong-field sequential double ionization of polyatomic molecules, Physical Review A 109 (3), 033108 (2024)</p>
</li>
<li>
<p>C.H. Yuen and C.D. Lin, Rotation in attosecond vibronic coherence spectroscopy for molecules, Communications Physics 7 (1) (2024)</p>
</li>
<li>
<p>E. Weckwerth, A.J. Howard, C. Cheng, I. Gabalski, A.M. Ghrist, S.A. Mohideen, C.D. Lin, C.H. Yuen and P.H. Bucksbaum, Optical interference effect in strong-field electronic coherence spectroscopy, Physical Review A 112 (4), 043113 (2025)</p>
</li>
</ol>
</section>
<footer class="page__meta">
</footer>
</div>
</article>
</div>
` (Recent Posts was removed).
archive.html Parent of home.html; renders hero + sidebar + content.
default.html Outermost layout (html/head/body shell) — everything chains to it.
single.html Layout for content pages and posts.
splash.html Full-bleed hero layout (no sidebar).
_includes/ ~50 partials used by the layouts (theme). Prefer not to edit unless needed.
_sass/ Minimal Mistakes styles + skins (theme).
_data/
navigation.yml Site navigation / menu items.
ui-text.yml i18n UI labels (e.g. "Recent posts", pagination). Multi-language.
publications.yml AUTO-GENERATED from assets/ref/works.bib by scripts/convert_bib.py.
DO NOT EDIT BY HAND — re-run the script after changing the .bib.
assets/ css/, js/, images/ — static site assets and header images.
assets/ref/ holds the .bib source of truth; Jekyll ignores it.
scripts/ Local generators (e.g. convert_bib.py); Jekyll ignores the dir.
_config.yml Site configuration (do not delete; see "Key config" below).
Gemfile, Rakefile Upstream theme build tooling — NOT functional locally. See above.
package.json Upstream theme artifact (uglify-js devDep). Not used for the site build.
staticman.yml Optional comment backend (comments are currently disabled).
There is currently no _posts/ directory (the site has no blog posts yet). Post
front matter defaults (layout: single, author_profile, read_time, share,
related) are declared in _config.yml defaults:.
_config.yml)url: https://isaacyuen.com/, baseurl: "" — a GitHub Pages project
site, so all URLs are rooted at "".repository: Isaacych/isaacych.github.io — used by jekyll-paginate/sitemap.minimal_mistakes_skin: "air".plugins: [jekyll-paginate, jekyll-sitemap, jekyll-gist, jekyll-feed, jekyll-include-cache],
mirrored in whitelist: for GitHub Pages (which builds with --safe, loading only
whitelisted plugins).paginate: 5 / paginate_path: /page:num/ — currently unused (the Recent Posts
rendering that consumed it was removed from home.html). Safe to delete these and the
jekyll-paginate entries later, but harmless as-is.author:, footer:, and social: blocks.The homepage is index.md, not index.html. Jekyll only runs Markdown→HTML on
markdown_ext files, so an index.html would have rendered its Markdown literally.
Do not rename index.md back to index.html, and do not create a competing
index.html at the repo root.
index.md body (below the front matter). Front matter uses
layout: home, author_profile: true, an explicit title: (e.g. Home), and a
header.image + image_description. The explicit title is REQUIRED: without it,
GitHub Pages’ always-on jekyll-titles-from-headings plugin infers the page title
from the first heading (## Welcome), and archive.html then renders an
<h1 class="page__title"> that duplicates the in-body ## Welcome heading
(two “Welcome”s). Never rely on the inferred title for index.md._pages/ with a layout: single (and usually
author_profile: true) front matter and a permalink: (e.g. /research/)._pages/news.md, research.md, publications.md,
group.md (all layout: single, custom permalink)._data/navigation.yml.assets/css/main.scss — site-wide font size
($doc-font-size: 12px, set before the theme imports) and custom overrides
appended after the imports (hero caption, masthead sizes, the research
page’s figure.tunneling-sequence gap-less gallery, etc.). This is the
supported place for style tweaks; don’t edit _sass/ partials for site-
specific changes._data/ui-text.yml; author/footer/social: _config.yml.site.data.ui-text[locale] in includes;
site.locale is en-US.Recurring patterns used on the content pages (especially _pages/research.md):
Embed a single image/GIF: use the theme’s figure include, e.g.
`
<figcaption>
…
</figcaption></figure>
.
Animated GIFs auto-play in the browser — no extra code needed. Keep GIFs
small: the 800×800 research GIF was compressed 17 MB → 8.3 MB with
ffmpeg's two-pass palette mode (256 colours, fps=5`); scaling down or
fewer colours made it larger, so native size + fewer fps won.
figure include only emits <img> —
it has no <video> support — so write the <figure><video>…</video></figure>
as raw HTML in the Markdown (Jekyll renders it; keep relative_url on the
src). Use autoplay loop muted playsinline so it plays inline and
automatically like a GIF: browsers block autoplay unless muted (fine —
N2p.mp4 has no audio track), and playsinline stops iOS going fullscreen.
Add preload="metadata" so the page doesn’t download the whole file up front.<figure>s
in <div class="media-cluster align-right">…</div> placed above the text
that should wrap (a float only wraps later content). .media-cluster (defined
in main.scss) is a flex row floated right at two-thirds width, its two media
splitting the width evenly (each ~one-third); it stacks full-width below the
$small breakpoint. The Research page uses this for N2p.mp4 + the GIF.
Add {: .cf} under the next heading so it clears the float.class="align-right one-third" on the figure include, placed above the text
to wrap. figure.one-third is defined in assets/css/main.scss; align-right
ships with the theme (floats right at $small). Add {: .cf} under the next
heading so it clears the float. (Superseded on the Research page by
.media-cluster, but the pattern and class remain available.)figure figcaption { font-size: 1em }
override in main.scss (the theme default is $type-size-6 ≈ 9.6px).$...$ never renders — do NOT use it. Use inline HTML
instead: <sub>/<sup> for sub/superscripts, <em> for italic state
letters, and Unicode for Greek, e.g. N<sub>2</sub><sup>+</sup> → N₂⁺ and
<em>X</em><sup>2</sup>Σ<sub>g</sub><sup>+</sup> → X²Σ_g⁺.relative_url, post.url, site.xxx are rendered by
GitHub Pages — write Liquid, don’t pre-resolve paths yourself.The Publications page (_pages/publications.md) does not hand-list papers. The list is
generated from the BibTeX source of truth assets/ref/works.bib:
assets/ref/works.bib ──( python3 scripts/convert_bib.py )──▶ _data/publications.yml
│
_includes/publications.html renders site.data.publications
Workflow when a paper is added/edited:
assets/ref/works.bib (the only source of truth).python3 scripts/convert_bib.py (pure stdlib — no installs, no Jekyll build).
It writes _data/publications.yml and prints a preview + a “problem check” so you can
eyeball the cleaned titles (the .bib titles carry MathML/$LaTeX$ chemical formulas
that the script normalises; a few keys are hard-coded in TITLE_OVERRIDES)._data/publications.yml and the .bib together, plus
scripts/convert_bib.py if it changed.Guardrails:
_data/publications.yml. It is marked “AUTO-GENERATED / DO NOT
EDIT BY HAND” at the top; any manual change is overwritten on the next run.python3 scripts/convert_bib.py is fine — it neither installs gems nor builds
Jekyll, unlike the forbidden local Jekyll steps above. python3 is expected to exist
(a miniconda env is on the phys path); the script needs only the stdlib..bib, the generator, and this planning doc are excluded from the Jekyll build
(_config.yml exclude: lists scripts, assets/ref, plan.md), so they stay in the
repo but are never published to the live site._layouts/, _includes/, _sass/ are upstream Minimal Mistakes theme
code. Prefer changing user content (index.md, _pages/, _config.yml, _data/).
When a theme file must change, keep edits minimal and consistent with the existing
Liquid style, and remember the change affects every page that chains through that layout._config.yml excludes a lot of theme dev cruft (vendor, _docs, _test,
Gemfile, node_modules, etc.); don’t reintroduce it._site/, Gemfile.lock, node_modules, *.gem, .DS_Store are gitignored — never
commit generated output.rake preview, js, version, …) run under bundler and will fail
locally for the reasons above; ignore them.master; push to origin — GitHub Pages deploys automatically.