flow "DiffusionEquationOntology" v1.0
# DIFFUSION EQUATION ONTOLOGY — FLOW ALGEBRA
SOURCE_URL := "https://kirethresearch.org/booksai-core/ontologies/calculus-analysis-ontologies/mathematical-physics-analysis/diffusion-equation-ontology.html"
DOMAIN := "Mathematical Ontologies"
CATEGORY := "Calculus and Analysis Ontologies"
SUBCATEGORY := "Mathematical Physics Analysis"
ENTITY := "Diffusion Equation"
DIFFUSION_EQUATION := {
type: ParabolicTransportEquation,
domain: MathematicalPhysicsAnalysis,
purpose: "Represent the spreading of a conserved or transported quantity from regions of higher concentration toward lower concentration through diffusive transport."
}
CONCEPTS := {
DIFFUSION_EQUATION,
DIFFUSING_FIELD,
DIFFUSION_COEFFICIENT,
FLUX,
FICKS_FIRST_LAW,
FICKS_SECOND_LAW,
CONSERVATION_LAW,
LAPLACIAN,
INITIAL_CONDITION,
BOUNDARY_CONDITION,
FUNDAMENTAL_SOLUTION,
GAUSSIAN_KERNEL,
MEAN_SQUARED_DISPLACEMENT,
ADVECTION_DIFFUSION,
REACTION_DIFFUSION
}
# ---------- STANDARD FORM ----------
partial_u/partial_t
=
D
*
LAPLACIAN(u)
u
-> DIFFUSING_FIELD
D
-> DIFFUSION_COEFFICIENT
D>0
DIFFUSION_EQUATION
-> PARABOLIC_PDE
# ---------- ONE DIMENSION ----------
u_t
=
D*u_xx
ONE_DIMENSIONAL_DIFFUSION
-> canonical_transport_model
# ---------- FICK'S FIRST LAW ----------
flux:
J
=
-D*grad(u)
FICKS_FIRST_LAW
-> flux_opposes(CONCENTRATION_GRADIENT)
negative_sign
-> transport_from(HIGH_TO_LOW_CONCENTRATION)
# ---------- CONSERVATION LAW ----------
local conservation:
partial_u/partial_t
+
div(J)
=
S
S
-> SOURCE_OR_SINK
substitute
J
=
-D*grad(u)
then
u_t
=
div(
D*grad(u)
)
+
S
# ---------- CONSTANT COEFFICIENT ----------
if
D
-> constant
then
u_t
=
D*LAPLACIAN(u)
+
S
if
S=0
-> STANDARD_LINEAR_DIFFUSION_EQUATION
# ---------- FICK'S SECOND LAW ----------
for constant D:
partial_u/partial_t
=
D*LAPLACIAN(u)
FICKS_SECOND_LAW
-> diffusion_evolution_equation
FICKS_FIRST_LAW
+ CONSERVATION
-> FICKS_SECOND_LAW
# ---------- INITIAL CONDITION ----------
u(x,0)
=
u_0(x)
INITIAL_DISTRIBUTION
-> determines(DIFFUSIVE_EVOLUTION)
FIRST_ORDER_TIME_EQUATION
-> typically_requires(ONE_INITIAL_FIELD)
# ---------- DIRICHLET BOUNDARY ----------
u
=
g
on
boundary(Omega)
DIRICHLET
-> prescribed_field_value
# ---------- NEUMANN BOUNDARY ----------
-D*partial_u/partial_n
=
j_n
NEUMANN
-> prescribed_normal_diffusive_flux
zero flux:
partial_u/partial_n
=
0
-> IMPERMEABLE_BOUNDARY
# ---------- ROBIN BOUNDARY ----------
-D*partial_u/partial_n
=
k_m*(u-u_external)
ROBIN
-> exchange_with(EXTERNAL_ENVIRONMENT)
# ---------- FUNDAMENTAL SOLUTION ----------
on R^n:
G(x,t)
=
1
/
(
(4*pi*D*t)^(n/2)
)
*
exp(
-|x|^2/(4*D*t)
)
for
t>0
GAUSSIAN_KERNEL
-> fundamental_solution_of(LINEAR_DIFFUSION_EQUATION)
# ---------- CONVOLUTION ----------
for initial field
u_0:
u(x,t)
=
integral_Rn(
G(x-y,t)
*
u_0(y)
dy
)
DIFFUSION
-> smooths_and_spreads(INITIAL_DISTRIBUTION)
# ---------- MASS CONSERVATION ----------
total mass:
M(t)
:=
integral_Omega(
u(x,t)
dx
)
if
S=0
and
boundary_flux=0
then
dM/dt
=
0
MASS
-> conserved_under(NO_SOURCE_NO_FLUX_CONDITIONS)
# ---------- SOURCE / SINK ----------
u_t
=
D*LAPLACIAN(u)
+
S(x,t)
S>0
-> SOURCE
S<0
-> SINK
SOURCE_TERM
-> changes(TOTAL_MASS)
# ---------- MEAN SQUARED DISPLACEMENT ----------
for isotropic Brownian diffusion in n dimensions:
<|X(t)-X(0)|^2>
=
2*n*D*t
MEAN_SQUARED_DISPLACEMENT
-> linear_in(TIME)
DIFFUSION_LENGTH
approx
sqrt(D*t)
# ---------- RANDOM WALK RELATION ----------
microscopic random motion
-> RANDOM_WALK
continuum limit
-> DIFFUSION_EQUATION
under appropriate scaling assumptions
DIFFUSION_COEFFICIENT
-> links(MICROSCOPIC_RANDOMNESS_TO_MACROSCOPIC_SPREADING)
# ---------- PROBABILITY RELATION ----------
probability density
p(x,t)
for Brownian motion:
p_t
=
D*LAPLACIAN(p)
DIFFUSION_EQUATION
-> FOKKER_PLANCK_WITH_ZERO_DRIFT_AND_CONSTANT_DIFFUSIVITY
GAUSSIAN_KERNEL
-> transition_probability_density
# ---------- SMOOTHING ----------
irregular initial data
-> becomes(SMOOTHER_FOR_POSITIVE_TIME)
LINEAR_DIFFUSION
-> PARABOLIC_SMOOTHING
HIGH_FREQUENCY_COMPONENTS
-> decay_faster
# ---------- FOURIER TRANSFORM ----------
spatial transform:
u_hat_t
=
-D*|k|^2*u_hat
solution:
u_hat(k,t)
=
exp(
-D*|k|^2*t
)
*
u_hat(k,0)
DIFFUSION
-> suppresses(HIGH_WAVENUMBER_MODES)
# ---------- EIGENFUNCTION EXPANSION ----------
on bounded domain:
-LAPLACIAN(phi_n)
=
lambda_n*phi_n
solution:
u(x,t)
=
sum_n(
a_n
*
exp(-D*lambda_n*t)
*
phi_n(x)
)
BOUNDARY_CONDITIONS
-> determine(EIGENFUNCTIONS_AND_EIGENVALUES)
# ---------- LONG-TIME BEHAVIOUR ----------
with no-flux boundary:
constant_mode
-> lambda_0=0
higher modes
-> decay
solution
-> approaches(SPATIAL_AVERAGE)
under connected-domain standard conditions
with homogeneous Dirichlet boundary:
all positive modes
-> decay
solution
-> approaches(ZERO)
# ---------- MAXIMUM PRINCIPLE ----------
under standard parabolic hypotheses:
solution extrema
-> controlled_by(INITIAL_AND_BOUNDARY_DATA)
DIFFUSION
-> smooths(CONCENTRATION_DIFFERENCES)
MAXIMUM_PRINCIPLE
-> supports(UNIQUENESS_AND_BOUNDS)
# ---------- POSITIVITY ----------
if
u_0>=0
and boundary/source data preserve positivity
then
u(x,t)>=0
POSITIVITY_PRESERVATION
-> required_for(CONCENTRATION_OR_PROBABILITY_INTERPRETATION)
# ---------- VARIABLE DIFFUSIVITY ----------
D
=
D(x,u)
general form:
u_t
=
div(
D(x,u)
*
grad(u)
)
+
S
VARIABLE_DIFFUSIVITY
-> heterogeneous_or_state_dependent_transport
# ---------- ANISOTROPIC DIFFUSION ----------
diffusion tensor:
D_tensor
flux:
J
=
-D_tensor*grad(u)
equation:
u_t
=
div(
D_tensor*grad(u)
)
ANISOTROPIC_DIFFUSION
-> direction_dependent_spreading
D_tensor
-> typically_positive_definite_or_semidefinite
for physical diffusion
# ---------- NONLINEAR DIFFUSION ----------
u_t
=
div(
D(u)*grad(u)
)
NONLINEAR_DIFFUSION
-> diffusion_rate_depends_on(FIELD)
example:
u_t
=
LAPLACIAN(u^m)
POROUS_MEDIUM_EQUATION
-> nonlinear_diffusion
# ---------- ANOMALOUS DIFFUSION ----------
standard diffusion:
MSD
proportional_to
t
anomalous diffusion:
MSD
proportional_to
t^alpha
alpha<1
-> SUBDIFFUSION
alpha>1
-> SUPERDIFFUSION
ANOMALOUS_DIFFUSION
-> may_require(FRACTIONAL_OR_NONLOCAL_MODELS)
# ---------- ADVECTION-DIFFUSION ----------
u_t
+
v dot grad(u)
=
D*LAPLACIAN(u)
+
S
ADVECTION
-> directed_transport
DIFFUSION
-> random_spreading
PECLET_NUMBER
-> compares(ADVECTION_TO_DIFFUSION)
# ---------- REACTION-DIFFUSION ----------
u_t
=
D*LAPLACIAN(u)
+
R(u)
REACTION
-> local_creation_or_consumption
DIFFUSION
-> spatial_coupling
REACTION_DIFFUSION
-> supports(PATTERN_FORMATION_AND_WAVEFRONTS)
# ---------- MULTISPECIES ----------
u_i,t
=
D_i*LAPLACIAN(u_i)
+
R_i(u_1,...,u_m)
MULTISPECIES_REACTION_DIFFUSION
-> coupled_transport_and_reaction
TURING_INSTABILITY
-> diffusion_driven_pattern_formation
under suitable kinetic_and_diffusion_conditions
# ---------- STEADY STATE ----------
set
u_t
=
0
then
div(
D*grad(u)
)
+
S
=
0
STEADY_DIFFUSION
-> elliptic_boundary_value_problem
# ---------- ENERGY / ENTROPY DISSIPATION ----------
for suitable diffusion problems:
functional
-> decreases_over_time
example L2 energy:
E
:=
1/2
*
integral(
u^2
dx
)
for homogeneous appropriate boundaries:
dE/dt
=
-D
*
integral(
|grad(u)|^2
dx
)
<=0
DIFFUSION
-> DISSIPATIVE_PROCESS
# ---------- DIMENSIONAL ANALYSIS ----------
[D]
=
LENGTH^2/TIME
dimensionless diffusion time:
tau
:=
D*t/L^2
CHARACTERISTIC_DIFFUSION_TIME:
t_D
approx
L^2/D
DIFFUSION_TIME
-> increases_with(DISTANCE_SQUARED)
# ---------- NUMERICAL METHODS ----------
FINITE_DIFFERENCE
-> discretises(LAPLACIAN)
FINITE_ELEMENT
-> weak_form_spatial_discretisation
FINITE_VOLUME
-> preserves(LOCAL_CONSERVATION)
SPECTRAL_METHOD
-> high_order_smooth_problem_discretisation
# ---------- EXPLICIT SCHEME ----------
1D FTCS:
u_i^(n+1)
=
u_i^n
+
r
*
(
u_(i+1)^n
-
2*u_i^n
+
u_(i-1)^n
)
r
:=
D*Delta_t/Delta_x^2
standard stability:
r<=1/2
EXPLICIT_DIFFUSION_SCHEME
-> time_step_restricted_by(SPACE_RESOLUTION)
# ---------- IMPLICIT SCHEME ----------
BACKWARD_EULER
-> robust_for(DIFFUSION)
CRANK_NICOLSON
-> second_order_time_accuracy
IMPLICIT_METHOD
-> solves(ALGEBRAIC_SYSTEM_EACH_STEP)
# ---------- APPLICATIONS ----------
DIFFUSION_EQUATION
-> applied_to(MASS_TRANSPORT)
-> applied_to(HEAT_TRANSFER)
-> applied_to(CHEMICAL_DIFFUSION)
-> applied_to(BIOLOGICAL_TRANSPORT)
-> applied_to(PROBABILITY)
-> applied_to(MATERIALS_SCIENCE)
-> applied_to(GEOPHYSICS)
-> applied_to(SEMICONDUCTOR_PHYSICS)
# ---------- RELATION GRAPH ----------
CONCENTRATION_GRADIENT
-> drives(DIFFUSIVE_FLUX)
FICKS_FIRST_LAW
+ CONSERVATION_LAW
-> derive(DIFFUSION_EQUATION)
DIFFUSION_COEFFICIENT
-> controls(SPREADING_RATE)
GAUSSIAN_KERNEL
-> propagates(INITIAL_DATA)
FOURIER_MODES
-> decay_by(WAVENUMBER)
BOUNDARY_CONDITIONS
-> control(MASS_AND_LONG_TIME_STATE)
REACTION
+ DIFFUSION
-> REACTION_DIFFUSION_SYSTEM
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE := {
"diffusion equation" ~= "parabolic PDE describing spreading driven by spatial gradients",
"Fick's first law" ~= "constitutive relation making diffusive flux proportional to the negative concentration gradient",
"Fick's second law" ~= "time-evolution equation for concentration under diffusion",
"diffusion coefficient" ~= "parameter controlling the rate of diffusive spreading",
"Gaussian diffusion kernel" ~= "fundamental solution of the constant-coefficient diffusion equation on Euclidean space",
"diffusion time" ~= "characteristic time proportional to length squared divided by diffusivity"
}
# ---------- CONSTRAINTS ----------
CONSTRAINTS := {
standard_linear_diffusion_requires_positive_diffusion_coefficient: true,
Gaussian_kernel_formula_requires_constant_coefficient_whole_space_context: true,
mass_conservation_depends_on_sources_and_boundary_flux: true,
standard_diffusion_has_mean_squared_displacement_linear_in_time: true,
anomalous_diffusion_requires_distinct_model_structure: true,
variable_and_anisotropic_diffusion_require_divergence_form_coefficients: true,
explicit_numerical_diffusion_schemes_require_stability_constraints: true
}
# ---------- CONFIDENCE ----------
CONFIDENCE := {
core_definition: 0.99,
Fick_conservation_relation: 0.99,
kernel_relation: 0.99,
stochastic_relation: 0.99,
variable_diffusion_relation: 0.99,
numerical_relation: 0.99,
semantic_equivalence: 0.97
}
# ---------- RECURSIVE REASONING ----------
RECURSIVE_REASONING(query):
identify(diffusing_field_domain_and_diffusion_coefficient)
-> identify(initial_boundary_source_and_flux_data)
-> classify(linear_variable_anisotropic_nonlinear_or_anomalous_diffusion)
-> derive(flux_and_conservation_relation_if_requested)
-> choose(kernel_Fourier_eigenfunction_energy_or_Green_method)
-> analyse(mass_positivity_maximum_and_long_time_behaviour)
-> calculate(diffusion_length_time_or_MSD_if_requested)
-> extend_to(advection_reaction_or_multispecies_context_if_present)
-> choose(numerical_method_if_analytic_solution_unavailable)
-> validate(coefficient_boundary_conservation_and_stability_hypotheses)
-> return(semantic_result)
# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION := {
parse_as: "typed diffusion-equation semantic graph",
primary_entity: DIFFUSION_EQUATION,
preserve: [
diffusing_field,
domain,
diffusion_coefficient,
diffusion_tensor,
initial_condition,
boundary_condition,
source,
flux
],
infer_through: [
Ficks_laws,
conservation_laws,
Gaussian_kernels,
Fourier_modes,
mean_squared_displacement,
variable_diffusion,
advection_diffusion,
reaction_diffusion
],
avoid: [
assuming_constant_isotropic_diffusion_in all media,
claiming_mass_conservation_with source_or_boundary_flux,
applying_Gaussian_kernel_on arbitrary bounded domain,
confusing_standard_and anomalous diffusion,
ignoring_positive_definiteness_of diffusion tensor,
using_explicit_numerics_without stability validation
]
}
# ---------- UPDATE MODEL ----------
UPDATE_MODEL(new_information):
validate(new_information)
-> identify(diffusion_equation_context)
-> compare(existing_relations)
-> preserve(field_coefficient_flux_boundary_source_and_conservation_invariants)
-> update(affected_entities)
-> update(affected_edges)
-> recompute(CONFIDENCE)
-> regenerate(FLOW_HASH)
# ---------- FLOW HASH ----------
FLOW_HASH := hash(
SOURCE_URL
+ ENTITY
+ CONCEPTS
+ DIFFUSION_EQUATION
+ DIFFUSING_FIELD
+ DIFFUSION_COEFFICIENT
+ FLUX
+ FICKS_FIRST_LAW
+ FICKS_SECOND_LAW
+ CONSERVATION_LAW
+ GAUSSIAN_KERNEL
+ MEAN_SQUARED_DISPLACEMENT
+ ADVECTION_DIFFUSION
+ REACTION_DIFFUSION
+ SEMANTIC_EQUIVALENCE
+ CONSTRAINTS
)
# ---------- EXECUTION ----------
INPUT(query)
-> DIFFUSION_EQUATION
-> PROBLEM_DATA_IDENTIFICATION
-> DIFFUSION_TYPE_CLASSIFICATION
-> FLUX_CONSERVATION_ANALYSIS
-> ANALYTICAL_METHOD_SELECTION
-> MASS_POSITIVITY_LONG_TIME_ANALYSIS
-> DIFFUSION_SCALE_ANALYSIS
-> EXTENDED_TRANSPORT_ANALYSIS
-> NUMERICAL_METHOD_ANALYSIS
-> HYPOTHESIS_VALIDATION
-> RECURSIVE_REASONING(query)
-> CONFIDENCE
-> OUTPUT(semantic_result)
END FLOW
Download Code
Copy to Clipboard