HomeDocs-Technical WhitePaper02-EFT.WP.Core.Equations v1.1

Chapter 6 — Boundary and Initial Conditions


I. Aims and Scope


II. Boundary Decomposition and Notation (S60-1)

BC set def= { Dirichlet, Neumann, Robin }; the set of initial conditions is denoted IC set.
∂Ω = ∂Ω_D ∪ ∂Ω_N ∪ ∂Ω_R with pairwise intersections of measure zero; the outward normal nu(x) is defined on ∂Ω.
S60-1 (boundary split and symbols)

III. Dirichlet Conditions (S60-2)

  1. S60-2 (strong form)
    q(x,t) = g_D^q(x,t) on ∂Ω_D × (0,t_end]
  2. Applicability and examples
    • Fixed field value: T_fil = T_ref; density clamp: rho = rho_ref.
    • Units and dimensions must match the corresponding q (see Core.Terms §6).

IV. Neumann Conditions (S60-3)

  1. S60-3 (strong form)
    J_q(x,t) • nu(x) = g_N^q(x,t) on ∂Ω_N × (0,t_end]
  2. Notes
    • For diffusive flux J_q = - D_q * grad[q], one has - D_q * grad[q] • nu = g_N^q.
    • Pure Neumann problems require an integral constraint to ensure solvability (see P60-2).

V. Robin (Convective-Type) Conditions (S60-4)


VI. Interface and Internal Boundary Conditions (S60-5)

  1. S60-5 (jump conditions across media interfaces)
    Let an interface Γ_int split Ω into Ω^- and Ω^+, with the normal oriented from Ω^- to Ω^+:
    • Field continuity (optional): [[ q ]]_Γ def= q^+ - q^- = 0.
    • Flux conservation (mandatory): [[ J_q • nu ]]_Γ = 0.
  2. Anisotropic case
    If J_q = - K(x) * grad[q], continuity must be enforced on nu • K * grad[q].

VII. Initial Conditions and Consistency (S60-6)


VIII. Weak Embedding and Natural Boundaries (S60-7)

Dirichlet is enforced via the test space: V = { w | w = 0 on ∂Ω_D }.
weak= ( ∫_{Ω} w * ∂_t q d V ) + ( ∫_{Ω} grad[w] • J_q d V ) = ( ∫_{Ω} w * S_q d V ) + ( ∫_{∂Ω_N} w * g_N^q d A ) + ( ∫_{∂Ω_R} w * ( - h_q * ( q - q_env ) ) d A )
With a test function w ∈ V:
S60-7 (generic weak form, continuing from S50-7)

IX. Compatibility and Well-Posedness (P60-1 ~ P60-3)


X. Specialization to the Tension Field (S60-8)

  1. S60-8 (boundary families for T_fil(x,t))
    • Dirichlet: T_fil = T_ref (fixed tension potential).
    • Neumann: grad[T_fil] • nu = g_N^{T} (prescribe the normal component of the tension gradient).
    • Robin: - k_Tn * grad[T_fil] • nu + h_T * ( T_fil - T_env ) = 0.
  2. Mapping consistency
    If n_eff def= F_map(T_fil, ...) (see Chapter 3), boundary values of T_fil and its normal gradient influence propagation and T_arr through F_map.

XI. Path Endpoints and Arrival-Time Hook (S60-9)

  1. Endpoint conditions
    For a path gamma(ell) with x_src = gamma(0) and x_rec = gamma(L_gamma):
    • Source-end prescription: q( gamma(0), t ) = q_src(t) or J_q( gamma(0), t ) • tau = g_src(t), where tau is the tangent.
    • Receiver-end prescription: q( gamma(L_gamma), t ) = q_rec(t) or J_q( gamma(L_gamma), t ) • tau = g_rec(t).
  2. Consistency with T_arr
    When T_arr = ( ∫_{gamma} ( n_eff / c_ref ) d ell ), if endpoint conditions alter n_eff, recompute ( n_eff_path, ds ) and call propagate_time.

XII. Non-Dimensional Boundary and Initial Conditions (S60-10)

  1. Scale mapping (aligned with Core.Terms §6)
    bar_x := ( x / L0 ), bar_t := ( t / t0 ), bar_q := ( q / q0 ).
  2. Non-dimensional BC/IC
    • Dirichlet: bar_q = ( g_D^q / q0 ).
    • Neumann: ( J_q • nu ) / J0 = ( g_N^q / J0 ), with J0 def= q0 * L0 / t0 (for diffusion-dominated cases, one may take J0 := D_char * q0 / L0).
    • Robin: ( J_q • nu ) / J0 + Bi_q * ( bar_q - bar_q_env ) = 0, where Bi_q def= ( h_q * L0 / J0 ).
    • Initial value: bar_q(x,0) = ( q_init(x) / q0 ).

XIII. Lint Rules and Forbidden Patterns

Do not use bare "c", "T", or "n" for ambiguous quantities; write c_ref, T_fil, n_eff or clarify inline (see global settings).

XIV. Implementation Binding and Assembly (I20-2 Alignment)

  1. Boundary interfaces
    • Dirichlet: bc_dirichlet(mask:any, value:any) -> BC.
    • Neumann: bc_neumann(mask:any, flux:any) -> BC.
    • Robin via equivalent Neumann: set flux := - h_q * ( q - q_env ) on the mask, or add the h_q term in a discrete boundary operator.
  2. Registration examples
    register_equation("S60-2", "q = g_D^q on ∂Ω_D", "bc", anchors=["§VI"], depends=["S50-1"])
    register_equation("S60-3", "J_q • nu = g_N^q on ∂Ω_N", "bc", anchors=["§IV"], depends=["S50-1"])
  3. Dimensional check
    check_dim_equation("J_q • nu = g_N^q") -> "[J_q]", which must match g_N^q (see P60-1).

XV. Minimal Working Example (BC/IC Package for Density Transport)

  1. Strong equation (from Chapter 5)
    ∂_t rho - div( D_rho * grad[rho] ) = S_rho on Ω
  2. Boundary and initial data
    • rho = rho_ref on ∂Ω_D
    • - D_rho * grad[rho] • nu = g_N^{rho} on ∂Ω_N
    • - D_rho * grad[rho] • nu + h_rho * ( rho - rho_env ) = 0 on ∂Ω_R
    • rho(x,0) = rho_init(x) on Ω
  3. Weak-form assembly
    weak= ( ∫_{Ω} w * ∂_t rho d V ) + ( ∫_{Ω} D_rho * grad[w] • grad[rho] d V ) = ( ∫_{Ω} w * S_rho d V ) + ( ∫_{∂Ω_N} w * g_N^{rho} d A ) + ( ∫_{∂Ω_R} w * ( - h_rho * ( rho - rho_env ) ) d A ).
  4. Implementation sequence
    • Apply bc_dirichlet on ∂Ω_D; apply bc_neumann on ∂Ω_N.
    • Convert Robin to equivalent flux and include via bc_neumann or assemble a boundary operator.
    • Advance with solve_*. If arrival time is required, evaluate updated n_eff(x,t), generate ( n_eff_path, ds ) along gamma(ell), and call propagate_time(n_eff_path, ds, c_ref).

Copyright & License (CC BY 4.0)

Copyright: Unless otherwise noted, the copyright of “Energy Filament Theory” (text, charts, illustrations, symbols, and formulas) belongs to the author “Guanglin Tu”.
License: This work is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0). You may copy, redistribute, excerpt, adapt, and share for commercial or non‑commercial purposes with proper attribution.
Suggested attribution: Author: “Guanglin Tu”; Work: “Energy Filament Theory”; Source: energyfilament.org; License: CC BY 4.0.

First published: 2025-11-11|Current version:v5.1
License link:https://creativecommons.org/licenses/by/4.0/