A colloidal gel is a mechanically persistent, space-spanning particle network arrested on the observation timescale. Attractions can produce such a network during aggregation or arrested phase separation. A gel is a dynamical, often nonequilibrium state; its appearance does not establish an additional equilibrium thermodynamic phase.
A colloidal glass is a disordered dense particle assembly with structural relaxation too slow on the observation timescale. Crowding, repulsion or short-range attraction can impede rearrangement. Kinetic arrest must be distinguished from an equilibrium phase transition to a crystal.
Particle aggregation is association of initially separate particles into larger clusters. For colloids, both the rate of Brownian motion encounters and the probability that an encounter produces attachment matter. Strong attraction with negligible repulsive barriers can give diffusion-limited cluster aggregation; a barrier that makes attachment unlikely can give reaction-limited cluster aggregation. Reversible association and bond rearrangement require additional kinetic assumptions.
CMPT 710 and CMPT 407 - Computational Complexity - Fall 2007 CMPT 710 - Complexity Theory: Lecture 18 by
Codex 0 2026-10-18
By Valentine Kabanets, explicitly credited on PDF p. 1. Authored lecture notes within CMPT 710 and CMPT 407 - Computational Complexity - Fall 2007, dated 8 November 2007. Simon Fraser University hosts the notes; the instructor credit is separate from the lecture byline.
Vibration isolation reduces the transmission of unwanted mechanical oscillations between an apparatus and its surroundings. Compliant supports and damping can reduce transmitted motion, but their effectiveness depends on the disturbance frequency and the support's resonance.
Mechanical impedance is the ratio of a driving force complex amplitude to the resulting velocity complex amplitude at a specified point and in a specified direction. Its units are . The direction of the force, the time convention and whether one is describing a travelling component or a total field must be stated. A positive real travelling-wave mechanical impedance transfers mean power when is the peak velocity wave amplitude.
Motion after launch under a specified gravitational field, with negligible drag force and no thrust. In a constant downward gravitational acceleration , horizontal velocity is constant and vertical position obeys . Eliminating time gives a parabola when horizontal velocity is nonzero. Over larger distances the changing direction and magnitude of gravity require an orbital model instead.
Section of Classical Electromagnetism by Richard Fitzpatrick by whole-work author Richard Fitzpatrick; no separate chapter byline is established. The University of Texas at Austin hosts the author’s teaching text.
Online revision: 2014-06-27; this is not an original publication date.
Cited passages: Complete Permanent Ferromagnets section, particularly equations (709) and (712)–(716); Outward surface-normal discussion following equation (710); Whole-work index byline; existing reusable source scope also verified in physics-bibliography.bigb.
Classical Electromagnetism: An intermediate level course by Richard Fitzpatrick Magnetization by
Codex 0 2026-10-18
Section of Classical Electromagnetism: An intermediate level course by Richard Fitzpatrick by whole-work author Richard Fitzpatrick; no separate chapter byline is established. The University of Texas at Austin hosts the author’s teaching text.
Online revision: 2006-02-02; this is not an original publication date.
Cited passages: Complete section; equations (856)–(857) and surrounding averaging definition; Equations (860)–(864), current decomposition and H definition; Whole-work title and author byline on lectures.html.
Blood is a fluid containing biological cells that transports substances through a circulatory system. Its viscosity depends on its cellular content and deformation rate. Treating it as a Newtonian fluid in the Hagen-Poiseuille equation is an approximation that depends on the vessel size and flow conditions.
With storage allocated in advance, each successful insertion, removal,
peek, size, and full/empty check uses worst-case time complexity in Big O notation. This assumes constant-cost indexed array access, bounded machine word index arithmetic and fixed-cost scalar item reads and writes. Each operation touches a bounded number of slots and fields regardless of and ; no shifting, scanning or resizing occurs. Rejected operations also take constant work. Producing a copy of all live items takes work under the same scalar-cost assumptions.The preallocated array occupies scalar slots plus constant bookkeeping. Allocation and any initial slot construction are separate setup costs. Copying a large item, running an expensive destructor or callback, allocating an item, or growing a dynamic array changes the operation cost and must be charged separately. The bound is worst-case structural work, with no need for amortized analysis, and says nothing about a measured wall-clock deadline.
These formulas describe sequential calls. Wrapping array indices implies neither atomic operations nor safe access from multiple software threads. Publication of an item's contents and reuse of its slot require a protocol justified under the relevant memory model, including any necessary acquire-release synchronization. The kernel documentation discusses barriers under explicit producer/consumer restrictions; Boost's documentation separately requires mutual exclusion for shared access involving writes. Neither property follows merely from choosing a circular buffer.[ref]
Circular Buffers by David Howells and Paul E. McKenney. David Howells and Paul E. McKenney, Circular Buffers, Using memory barriers with circular buffers; The producer; The Consumer: explicit synchronization and ordering requirements
[ref]Implementation. Jan Gaspar, Boost.Circular Buffer, Implementation, Thread-Safety: shared access involving a writer requires mutual exclusion
Continue from step 9 with a proposed insertion of . A rejecting operation
try_enqueue(H) returns full, writes nothing and leaves with . The next dequeue() returns , leaving with . Rejection requires the caller to decide whether to retry or abandon .An overwriting operation
append_latest(H) instead writes , advances , and keeps . It can report the discarded label as part of its specified result. At step 10 this gives with . The next dequeue() returns , leaving with . Below full capacity, append_latest follows the ordinary insertion rule without discarding anything.The lower bars in the trace diagram expose the consequence: entered at step 4 and remains a member until step 11 under rejection, but only until step 10 under overwrite. never becomes a member in the rejecting branch; it does in the overwriting branch. The same physical slot can therefore hold different logical items over time. These interfaces are observably different, so representation independence cannot justify exchanging them while retaining the same promised results.
Boost's documented
push_back behavior chooses overwrite when full, implemented by assignment to the old element. Its discussion of iterator invalidation illustrates why a reused address need not still identify the original item. Assignment, object destruction, and release of an owned resource are separate language-level concerns; the membership bars make no claim about those lifetimes.[ref]Implementation. Jan Gaspar, Boost.Circular Buffer, Implementation: Overwrite Operation; Writing to a Full Buffer; Iterator Invalidation; Caveats
A rejecting FIFO queue suits work that must remain pending until explicitly removed. An overwriting circular buffer suits a bounded recent history where losing the oldest retained item is the stated policy. Neither storage wrap nor bounded capacity chooses between those requirements.
Start with , , and immutable labels. Perform
enqueue(A), enqueue(B), dequeue(), enqueue(C), enqueue(D), dequeue(), enqueue(E), enqueue(F), enqueue(G). The removals return and . The interleaved insertions and removals make the front advance before the array fills; slot reuse does not require waiting for the FIFO queue to become empty.An interleaved capacity-five FIFO queue trace branches at a full insertion
. The table follows completed sequential calls. At step 10, rejecting retains ; overwriting accepts and discards . Step 11 therefore returns different labels. The lower bars show membership lifetimes for and at operation boundaries, not elapsed times or programming-language object lifetimes. Details.At step 7, occupies physical slot and the next-write array index wraps to . At step 8, reuses slot , giving the physical layout in the preceding diagram. At step 9, replaces the stale contents of slot : the physical array is but the logical sequence is . Now , yet makes the state full rather than empty.
The displayed values are related by after every call. They are shown together to explain the invariant; an implementation need store only two. For the rejecting FIFO queue, every successful removal returns the earliest accepted label not already removed. The representation independence example supplies the general proof through its abstraction function; this trace makes the wrapped physical storage visible.
With front-plus-count storage, empty means and full means ; every allocated slot is usable. With only the two wrapped array indices , the equality describes both possibilities. Indeed , and the two allowed counts have the same remainder. Recovering the count as therefore loses the full state. A count, a separate full flag, or a different index representation must resolve that ambiguity.
Another convention reserves one slot: for a physical array of length , empty means and full means . Its usable capacity is , and now recovers its count because . A five-slot array then stores at most four items.
This is the convention of the kernel's documented
CIRC_* helpers, which additionally require power-of-two array lengths. It is not a universal property of circular buffers; our capacity-five count-based example uses all five slots and does not use those helpers.[ref]Circular Buffers by David Howells and Paul E. McKenney. David Howells and Paul E. McKenney, Circular Buffers, What is a circular buffer?; Measuring power-of-2 buffers: full/empty convention and helper result range
Let the capacity be a positive integer , and allocate exactly array slots . Store the front array index and count . The representation invariant isThe logical sequence and next-write array index areHere denotes the nonnegative remainder from modular arithmetic. The count determines which slots are live: leftover bits in other slots are not members of the FIFO queue. If , has no current front item; it identifies the position where the next successful insertion begins. If , points at a live item, so writing there requires an explicit overwrite policy.
For ,
enqueue(x) writes , then increments , leaving fixed. For , dequeue() saves and returns , then sets and . These are sequential updates, completed before the next call. A rejecting interface tests or first and returns full or empty, respectively, without changing state. peek returns only when ; size returns .One can instead store and , recovering . On insertion, advance and increment ; on removal, keep fixed and decrement . Thus the next-write array index is not necessarily the front array index.
Names such as
head and tail require checking the actual API: the kernel documentation calls the insertion position head and the removal position tail.[ref]Circular Buffers by David Howells and Paul E. McKenney. David Howells and Paul E. McKenney, Circular Buffers, What is a circular buffer?: head is insertion, tail is removal
The diagram is the state after step 8 of circular buffer operation trace. Reading the physical array from slot zero would give , which includes a removed label and puts first. Reading from for exactly items gives . The next insertion uses slot , not slot . This distinction also explains why the live sequence may need two contiguous pieces of the array: here slots through , followed by slot . No items need to move to make this wrap work.
There are unlisted articles, also show them or only show them.

