text:
Drupal

Drupal is a free and open-source web content management system (CMS) written in PHP and distributed under the GNU General Public License. Drupal provides an open-source back-end framework for at least 14% of the top 10,000 websites worldwide and 1.2% of the top 10 million websites —ranging from personal blogs to corporate, political, and government sites. Drupal can also be used for knowledge management and for business collaboration.

, the Drupal community had more than 1.39 million members,  including 124,000 users actively contributing, resulting in more than 50,000 free modules that extend and customize Drupal functionality, over 3,000 free themes that change the look and feel of Drupal, and at least 1,400 free distributions that allow users to quickly and easily set up a complex, use-specific Drupal in fewer steps.

The standard release of Drupal, known as Drupal core, contains basic features common to content-management systems. These include user account registration and maintenance, menu management, RSS feeds, taxonomy, page layout customization, and system administration. The Drupal core installation can serve as a simple website, a single- or multi-user blog, an Internet forum, or a community website providing for user-generated content.

Drupal also describes itself as a Web application framework. When compared with notable frameworks, Drupal meets most of the generally accepted feature requirements for such web frameworks.

Although Drupal offers a sophisticated API for developers, basic Web-site installation and administration of the framework require no programming skills.

Drupal runs on any computing platform that supports both a web server capable of running PHP and a database to store content and configuration.

In 2023/2024, Drupal received over 250,000 Euros from Germany's Sovereign Tech Fund.

History
Drupal was originally written by Dries Buytaert as a message board for his friends to communicate in their dorms while working on his Master's degree at the University of Antwerp. After graduation, Buytaert moved the site to the public internet and named it Drop.org. Between 2003 and 2008 Dries Buytaert worked towards a PhD degree at Ghent University.

The name Drupal represents an English rendering of the Dutch word druppel, which means "drop" (as in a water droplet). The name came from the now-defunct Drop.org, whose code slowly evolved into Drupal. Buytaert wanted to call the site "dorp" (Dutch for "village") for its community aspects, but mistyped it when checking the domain name and thought the error sounded better.

Drupal became an open source project in 2001. Interest in Drupal got a significant boost in 2003 when it helped build "DeanSpace" for Howard Dean, one of the candidates in the U.S. Democratic Party's primary campaign for the 2004 U.S. presidential election. DeanSpace used open-source sharing of Drupal to support a decentralized network of approximately 50 disparate, unofficial pro-Dean websites that allowed users to communicate directly with one another as well as with the campaign. After Dean ended his campaign, members of his Web team continued to pursue their interest in developing a Web platform that could aid political activism by launching CivicSpace Labs in July 2004, "...the first company with full-time employees that was developing and distributing Drupal technology." Other companies began to also specialize in Drupal development.

By 2013, the Drupal website listed hundreds of vendors that offered Drupal-related services.

, Drupal is developed by a community. From July 2007 to June 2008, the Drupal.org site provided more than 1.4 million downloads of Drupal software, an increase of approximately 125% from the previous year.

more than 1,180,000 sites use Drupal. These include hundreds of well-known organizations, including corporations, media and publishing companies, governments, non-profits, schools, and individuals. Drupal has won several Packt Open Source CMS Awards and won the Webware 100 three times in a row.

Drupal 6 was released on February 13, 2008, on March 5, 2009, Buytaert announced a code freeze for Drupal 7 for September 1, 2009. Drupal 7 was released on January 5, 2011, with release parties in several countries. After that, maintenance on Drupal 5 stopped, with only Drupal 7 and Drupal 6 maintained.

Drupal 7's end-of-life was scheduled for November 2021, but given the impact of COVID-19, and the continuing wide usage, the end of life has been pushed back until November 1, 2023, to be reviewed annually. Drupal 7 end-of-life has been extended once more as of June 2023. It is now set for January 5, 2025. This is expected to be the final extension for Drupal 7.

On October 7, 2015, Drupal 8 first release candidate (rc1) was announced. Drupal 8 includes new features and improvements for both users and developers, including: a revamped user interface; WYSIWYG and in-place editing; improved mobile support; added and improved key contributed modules including Views, Date, and Entity Reference; introduced a new object-oriented backend leveraging Symfony components; revamped configuration management; and improved multilingual support. Drupal 8 rc1 is the collective work of over 3,200 core contributors. Drupal 8 only allows clients to use local images and utilizes only filtered HTML designs. Drupal 8 was end-of-life on November 30, 2021.

Drupal 9 was released on June 3, 2020. Drupal 9 was end-of-life on November 1, 2023.

In October 2022, Drupal released an open source headless CMS accelerator, allowing the front end to be managed outside of the core system.

In December 2022, the community released Drupal 10.0.

Core
In the Drupal community, "core" refers to the collaboratively built codebase that can be extended through contributory modules and—for versions prior to Drupal 8—is kept outside of the "sites" folder of a Drupal installation. (Starting with version 8, the core is kept in its own 'core' sub-directory.) Drupal core is the stock element of Drupal. Common Drupal-specific libraries, as well as the bootstrap process, are defined as Drupal core; all other functionality is defined as Drupal modules including the system module itself.

In a Drupal website's default configuration, authors can contribute content as either registered or anonymous users (at the discretion of the administrator). This content is accessible to web visitors through a variety of selectable criteria. As of Drupal 8, Drupal has adopted some Symfony libraries into Drupal core.

Core modules also include a hierarchical taxonomy system, which lets developers categorize content or tag with keywords for easier access.

Drupal maintains a detailed changelog of core feature updates by version.

Core modules
Drupal core includes modules that can be enabled by the administrator to extend the functionality of the core website.

The core Drupal distribution provides a number of features, including: • Access statistics and logging

• Advanced search

• Books, comments, and forums

• Caching, lazy-loading content (using BigPipe) and feature throttling for improved performance

• Custom content type and fields, and user interface to create, manage, and display lists of content.

• Descriptive URLs

• Multi-level menu system

• Multi-site support

• Multi-user content creation and editing

• RSS feed and feed aggregator

• Security and new release update notification

• User profiles

• Various access control restrictions (user roles, IP addresses, email)

• Workflow tools (triggers and actions)

Core themes
Drupal includes core themes, which customize the "look and feel" of Drupal sites, for example, Garland and Bartik.

The Color Module, introduced in Drupal core 5.0, allows administrators to change the color scheme of certain themes via a browser interface.

Localization
As of September 2022, Drupal is available in 100 languages including English (the default). Support is included for right-to-left languages such as Arabic, Persian, and Hebrew.

Drupal localization is built on top of gettext, the GNU internationalization and localization (i18n) library.

Auto-update notification
Drupal can automatically notify the administrator about new versions of modules, themes, or the Drupal core. It's important to update quickly after security updates are released.

Before updating it is highly recommended to take backup of core, modules, theme, files and database. If there is any error shown after update or if the new update is not compatible with a module, then it can be quickly replaced by a backup. There are several backup modules available in Drupal.

On 15 October 2014, an SQL injection vulnerability was announced and update was released. Two weeks later the Drupal security team released an advisory explaining that everyone should act under the assumption that any site not updated within 7 hours of the announcement was compromised by automated attacks. Thus, it can be extremely important to apply these updates quickly and usage of a tool like drush to make this process easier is highly recommended.

Database abstraction
Prior to version 7, Drupal had functions that performed tasks related to databases, such as SQL query cleansing, multi-site table name prefixing, and generating proper SQL queries. In particular, Drupal 6 introduced an abstraction layer that allowed programmers to create SQL queries without writing SQL.

Drupal 9 extends the data abstraction layer so that a programmer no longer needs to write SQL queries as text strings. It uses PHP Data Objects to abstract the database. Microsoft has written a database driver for their SQL Server. Drupal 7 supports the file-based SQLite database engine, which is part of the standard PHP distribution.

Windows development
With Drupal 9's new database abstraction layer, and ability to run on the Windows web server IIS, it is now easier for Windows developers to participate in the Drupal community.

A group on Drupal.org is dedicated to Windows issues.

Accessibility
Since the release of Drupal 7, Web accessibility has been constantly improving in the Drupal community. Drupal is a good framework for building sites accessible to people with disabilities, because many of the best practices have been incorporated into Drupal Core.

Drupal 8 saw many improvements from the Authoring Tool Accessibility Guidelines (ATAG) 2.0 guidelines which support both an accessible authoring environment as well as support for authors to produce more accessible content.

The accessibility team is carrying on the work of identifying and resolving accessibility barriers and raising awareness within the community.

Drupal 8 has good semantic support for rich web applications through WAI-ARIA. There have been many improvements to both the visitor and administrator sides of Drupal, especially:
 * Drag and drop functionality
 * Improved color contrast and intensity
 * Adding skip navigation to core themes
 * Adding labels by default for input forms
 * Fixing CSS display:none with consistent methods for hiding and exposing text on focus
 * Adding support for ARIA Live Regions with Drupal.announce
 * Adding a TabbingManager to support better keyboard navigation

The community also added an accessibility gate for core issues in Drupal 8.

Extending the core
Drupal core is modular, defining a system of hooks and callbacks, which are accessed internally via an API. This design allows third-party contributed modules and themes to extend or override Drupal's default behaviors without changing Drupal core's code.

Drupal isolates core files from contributed modules and themes. This increases flexibility and security and allows administrators to cleanly upgrade to new releases without overwriting their site's customizations. The Drupal community has the saying, "Never hack core," a strong recommendation that site developers do not change core files.

Modules
Contributed modules offer such additional or alternate features as image galleries, custom content types and content listings, WYSIWYG editors, private messaging, third-party integration tools, integrating with BPM portals, and more. the Drupal website lists more than 44,000 free modules.

Some of the most commonly used contributed modules include:
 * Content Construction Kit (CCK): Allows site administrators to dynamically create content types by extending the database schema. "Content type" describes the kind of information. Content types include, but are not limited to, events, invitations, reviews, articles, and products. The CCK Fields API is in Drupal core in Drupal 7.
 * Views: Facilitates the retrieval and presentation, through a database abstraction system, of content to site visitors. Basic views functionality has been added to core of Drupal 8.
 * Panels: Drag and drop layout manager that allows site administrators to visually design their site.
 * Rules: Conditionally executed actions based on recurring events.
 * Features: Enables the capture and management of features (entities, views, fields, configuration, etc.) into custom modules.
 * Context: Allows the definition of sections of site where Drupal features can be conditionally activated
 * Media: Makes photo uploading and media management easier
 * Services: Provides an API for Drupal.

Themes
, there are more than 2,800 free community-contributed themes. Themes adapt or replace a Drupal site's default look and feel.

Drupal themes use standardized formats that may be generated by common third-party theme design engines. Many are written in the PHPTemplate engine or, to a lesser extent, the XTemplate engine. Some templates use hard-coded PHP. Drupal 8 and future versions of Drupal integrate the Twig templating engine.

The inclusion of the PHPTemplate and XTemplate engines in Drupal addressed user concerns about flexibility and complexity. The Drupal theming system utilizes a template engine to further separate HTML/CSS from PHP. A popular Drupal contributed module called 'Devel' provides GUI information to developers and themers about the page build.

Community-contributed themes on the Drupal website are released under a free GPL license.

Distributions
In the past, those wanting a fully customized installation of Drupal had to download a pre-tailored version separately from the official Drupal core. Today, however, a distribution defines a packaged version of Drupal that upon installation, provides a website or application built for a specific purpose.

The distributions offer the benefit of a new Drupal site without having to manually seek out and install third-party contributed modules or adjust configuration settings. They are collections of modules, themes, and associated configuration settings that prepare Drupal for custom operation. For example, a distribution could configure Drupal as a "brochure" site rather than a news site or online store.

Architecture
Drupal is based on the Presentation Abstraction Control architecture, or PAC.

The menu system acts as the Controller. It accepts input via a single source (HTTP GET and POST), routes requests to the appropriate helper functions, pulls data out of the Abstraction (nodes and, from Drupal 5 onwards, forms), and then pushes it through a filter to get a Presentation of it (the theme system).

It even has multiple, parallel PAC agents in the form of blocks that push data out to a common canvas (page.tpl.php).

Community
Drupal.org has a large community of users and developers who provide active community support by coming up with new updates to help improve the functionality of Drupal. more than 105,400 users are actively contributing. The semiannual DrupalCon conference alternates between North America, Europe and Asia. Attendance at DrupalCon grew from 500 at Szeged in August 2008, to over 3,700 people at Austin, Texas, in June 2014.

Smaller events, known as "Drupal Camps" or DrupalCamp, occur throughout the year all over the world. The annual Florida DrupalCamp brings users together for Coding for a Cause that benefits a local nonprofit organization, as does the annual GLADCamp (Greater Los Angeles Drupal Camp) event, Coders with a Cause.

The Drupal community also organizes professional and semi-professional gatherings called meetups at numerous venues around the world.

There are over 30 national communities around drupal.org offering language-specific support.

Media
There are several Drupal specific forms of Media. The most popular is podcasts. DrupalEasy, TalkingDrupal and the Lullabot Podcast all have hundreds of episodes and thousands of regular listeners.

Recently, The Drop Times has become a Drupal focused media outlet, highlighting stories of relevance to the Drupal community.

Users
Notable Drupal users include:

 * NBC
 * Taboola
 * Patch
 * We the People
 * Oxford
 * NASA
 * Nokia
 * European Commission
 * UNICEF
 * Wish
 * Qualcomm
 * AMD (Advanced Micro Devices)
 * TSMC (Taiwan Semiconductor Manufacturing Company Limited)
 * Rainforest Alliance
 * VISA
 * Olympic Games
 * Smithsonian Institution
 * Universal Music Group
 * Pfizer
 * Johnson & Johnson
 * Princeton University
 * Columbia University

Security
Drupal's policy is to announce the nature of each security vulnerability once the fix is released.

Administrators of Drupal sites can be automatically notified of these new releases via the Update Status module (Drupal 6) or via the Update Manager (Drupal 7).

Drupal maintains a security announcement mailing list, a history of all security advisories, a security team home page, and an RSS feed with the most recent security advisories.

In mid-October 2014, Drupal issued a "highly critical" security advisory regarding an SQL injection bug in Drupal 7, also known as Drupageddon. Downloading and installing an upgrade to Drupal 7.32 fixes the vulnerability, but does not remove any backdoor installed by hackers if the site has already been compromised. Attacks began soon after the vulnerability was announced. According to the Drupal security team, where a site was not patched within hours of the announcement, it should be considered compromised and taken offline by being replaced with a static HTML page while the administrator of its server must be told that other sites on the same server may also have been compromised. To solve the problem, the site must be restored using backups from before October 15, be patched and manually updated, and anything merged from the site must be audited.

In late March 2018, a patch for vulnerability CVE-2018-7600, also dubbed Drupalgeddon2, was released. The underlying bug allows remote attackers without special roles or permissions to take complete control of Drupal 6, 7, and 8 sites. Drupal 6 reached end-of-life on February 24, 2016, and does not get official security updates (extended support is available from two paid Long Term Services Vendors). Starting early April, large scale automated attacks against vulnerable sites were observed, and on April 20, a high level of penetration of unpatched sites was reported.

On December 23, 2019, Drupal patched an arbitrary file upload flaw. The file-upload flaw affects Drupal 8.8.x before 8.8.1 and 8.7.x before 8.7.11, and the vulnerability is listed as moderately critical by Drupal.

In September 2022, Drupal announced two security advisories for a severe vulnerability in Twig for users of Drupal 9.3 and 9.4. That week, Drupal also announced a patch for the S3 File System to fix an access bypass issue.

In January 2023, Drupal announced software updates to resolve four vulnerabilities in Drupal core and three plugins.

Headless Future
Drupal's future direction is increasingly embracing a headless CMS architecture, transforming the landscape of content management systems. This approach decouples the frontend (presentation and publishing) from the backend (content), allowing for greater flexibility and innovation in content delivery. Notably, Drupal, a long-time competitor to WordPress, has invested significantly in this headless approach. Drupal creator Dries Buytaert has discussed Acquia's new open-source headless starter kit, which is integral to the Drupal-based Acquia CMS. This kit enables organizations to deliver content beyond traditional web browsers, catering to a range of digital mediums like digital signage, wearable devices, chatbots, mobile applications, and kiosks.

title: Drupal


text:
Cramer's rule

In linear algebra, Cramer's rule is an explicit formula for the solution of a system of linear equations with as many equations as unknowns, valid whenever the system has a unique solution. It expresses the solution in terms of the determinants of the (square) coefficient matrix and of matrices obtained from it by replacing one column by the column vector of right-sides of the equations. It is named after Gabriel Cramer, who published the rule for an arbitrary number of unknowns in 1750, although Colin Maclaurin also published special cases of the rule in 1748, and possibly knew of it as early as 1729.

Cramer's rule, implemented in a naive way, is computationally inefficient for systems of more than two or three equations. In the case of $n$ equations in $n$ unknowns, it requires computation of $n + 1$ determinants, while Gaussian elimination produces the result with the same computational complexity as the computation of a single determinant. Cramer's rule can also be numerically unstable even for 2×2 systems. However, Cramer's rule can be implemented with the same complexity as Gaussian elimination, (consistently requires twice as many arithmetic operations and has the same numerical stability when the same permutation matrices are applied).

General case
Consider a system of $n$ linear equations for $n$ unknowns, represented in matrix multiplication form as follows:

 * $$ A\mathbf{x} = \mathbf{b}$$

where the $n × n$ matrix $A$ has a nonzero determinant, and the vector $$ \mathbf{x} = (x_1, \ldots, x_n)^\mathsf{T} $$ is the column vector of the variables. Then the theorem states that in this case the system has a unique solution, whose individual values for the unknowns are given by:

 * $$ x_i = \frac{\det(A_i)}{\det(A)} \qquad i = 1, \ldots, n$$

where $$ A_i $$ is the matrix formed by replacing the $i$-th column of $A$ by the column vector $b$.

A more general version of Cramer's rule considers the matrix equation

 * $$ AX = B$$

where the $n × n$ matrix $A$ has a nonzero determinant, and $X$, $B$ are $n × m$ matrices. Given sequences $$ 1 \leq i_1 < i_2 < \cdots < i_k \leq n $$ and $$ 1 \leq j_1 < j_2 < \cdots < j_k \leq m $$, let $$ X_{I,J} $$ be the $k × k$ submatrix of $X$ with rows in $$ I := (i_1, \ldots, i_k ) $$ and columns in $$ J := (j_1, \ldots, j_k ) $$. Let $$ A_{B}(I,J) $$ be the $n × n$ matrix formed by replacing the $$i_s$$ column of $A$ by the $$j_s$$ column of $B$, for all $$ s = 1,\ldots, k $$. Then

 * $$ \det X_{I,J} = \frac{\det(A_{B}(I,J))}{\det(A)}. $$

In the case $$ k = 1 $$, this reduces to the normal Cramer's rule.

The rule holds for systems of equations with coefficients and unknowns in any field, not just in the real numbers.

Proof
The proof for Cramer's rule uses the following properties of the determinants: linearity with respect to any given column and the fact that the determinant is zero whenever two columns are equal, which is implied by the property that the sign of the determinant flips if you switch two columns.

Fix the index $j$ of a column, and consider that the entries of the other columns have fixed values. This makes the determinant a function of the entries of the $j$th column. Linearity with respect of this column means that this function has the form
 * $$D_j(a_{1,j}, \ldots, a_{n,j})= C_{1,j}a_{1,j}+\cdots, C_{n,j}a_{n,j},$$

where the $$C_{i,j}$$ are coefficients that depend on the entries of $A$ that are not in column $j$. So, one has
 * $$\det(A)=D_j(a_{1,j}, \ldots, a_{n,j})=C_{1,j}a_{1,j}+\cdots, C_{n,j}a_{n,j}$$

(Laplace expansion provides a formula for computing the $$C_{i,j}$$ but their expression is not important here.)

If the function $$D_j$$ is applied to any other column $k$ of $A$, then the result is the determinant of the matrix obtained from $A$ by replacing column $j$ by a copy of column $k$, so the resulting determinant is 0 (the case of two equal columns).

Now consider a system of $n$ linear equations in $n$ unknowns $$x_1, \ldots,x_n$$, whose coefficient matrix is $A$, with det(A) assumed to be nonzero:

 * $$\begin{matrix}

a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n&=&b_1\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n&=&b_2\\ &\vdots&\\ a_{n1}x_1+a_{n2}x_2+\cdots+a_{nn}x_n&=&b_n. \end{matrix}$$

If one combines these equations by taking $C_{1,j}$ times the first equation, plus $C_{2,j}$ times the second, and so forth until $C_{n,j}$ times the last, then for every $k$ the resulting coefficient of $x_{k}$ becomes
 * $$D_j(a_{1,k},\ldots,a_{n,k}).$$

So, all coefficients become zero, except the coefficient of $$x_j$$ that becomes $$\det(A).$$ Similarly, the constant coefficient becomes $$D_j(b_1,\ldots,b_n),$$ and the resulting equation is thus
 * $$\det(A)x_j=D_j(b_1,\ldots, b_n),$$

which gives the value of $$x_j$$ as
 * $$x_j=\frac1{\det(A)}D_j(b_1,\ldots, b_n).$$

As, by construction, the numerator is the determinant of the matrix obtained from $A$ by replacing column $j$ by $b$, we get the expression of Cramer's rule as a necessary condition for a solution.

It remains to prove that these values for the unknowns form a solution. Let $M$ be the $n × n$ matrix that has the coefficients of $$D_j$$ as $j$th row, for $$j=1,\ldots,n$$ (this is the adjugate matrix for $A$). Expressed in matrix terms, we have thus to prove that
 * $$\mathbf x = \frac1{\det(A)}M\mathbf b$$

is a solution; that is, that
 * $$A\left(\frac1{\det(A)}M\right)\mathbf b=\mathbf b.$$

For that, it suffices to prove that
 * $$A\,\left(\frac1{\det(A)}M\right)=I_n,$$

where $$I_n$$ is the identity matrix.

The above properties of the functions $$D_j$$ show that one has $MA = det(A)I_{n}$, and therefore,
 * $$\left(\frac1{\det(A)}M\right)\,A=I_n.$$

This completes the proof, since a left inverse of a square matrix is also a right-inverse (see Invertible matrix theorem).

For other proofs, see below.

Finding inverse matrix
Let $A$ be an $n × n$ matrix with entries in a field $F$. Then

 * $$A\,\operatorname{adj}(A) = \operatorname{adj}(A)\,A=\det(A) I$$

where $adj(A)$ denotes the adjugate matrix, $det(A)$ is the determinant, and $I$ is the identity matrix. If $det(A)$ is nonzero, then the inverse matrix of $A$ is

 * $$A^{-1} = \frac{1}{\det(A)} \operatorname{adj}(A).$$

This gives a formula for the inverse of $A$, provided $det(A) ≠ 0$. In fact, this formula works whenever $F$ is a commutative ring, provided that $det(A)$ is a unit. If $det(A)$ is not a unit, then $A$ is not invertible over the ring (it may be invertible over a larger ring in which some non-unit elements of $F$ may be invertible).

Explicit formulas for small systems
Consider the linear system

 * $$\left\{\begin{matrix}

a_1x + b_1y&= {\color{red}c_1}\\ a_2x + b_2y&= {\color{red}c_2} \end{matrix}\right.$$

which in matrix format is

 * $$\begin{bmatrix} a_1 & b_1 \\ a_2 & b_2 \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix}=\begin{bmatrix} {\color{red}c_1} \\ {\color{red}c_2} \end{bmatrix}.$$

Assume $a_{1}b_{2} − b_{1}a_{2}$ is nonzero. Then, with the help of determinants, $x$ and $y$ can be found with Cramer's rule as

 * $$\begin{align}

x &= \frac{\begin{vmatrix} {\color{red}{c_1}} & b_1 \\ {\color{red}{c_2}} & b_2 \end{vmatrix}}{\begin{vmatrix} a_1 & b_1 \\ a_2 & b_2 \end{vmatrix}} = { {\color{red}c_1}b_2 - b_1{\color{red}c_2} \over a_1b_2 - b_1a_2}, \quad y = \frac{\begin{vmatrix} a_1 & {\color{red}{c_1}} \\ a_2 & {\color{red}{c_2}} \end{vmatrix}}{\begin{vmatrix} a_1 & b_1 \\ a_2 & b_2 \end{vmatrix}} = { a_1{\color{red}c_2} - {\color{red}c_1}a_2 \over a_1b_2 - b_1a_2} \end{align}.$$

The rules for $3 × 3$ matrices are similar. Given

 * $$\left\{\begin{matrix}

a_1x + b_1y + c_1z&= {\color{red}d_1}\\ a_2x + b_2y + c_2z&= {\color{red}d_2}\\ a_3x + b_3y + c_3z&= {\color{red}d_3} \end{matrix}\right.$$

which in matrix format is

 * $$\begin{bmatrix} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \end{bmatrix}\begin{bmatrix} x \\ y \\ z \end{bmatrix}=\begin{bmatrix} {\color{red}d_1} \\ {\color{red}d_2} \\ {\color{red}d_3} \end{bmatrix}.$$

Then the values of $x, y$ and $z$ can be found as follows:

 * $$x = \frac{\begin{vmatrix} {\color{red}d_1} & b_1 & c_1 \\ {\color{red}d_2} & b_2 & c_2 \\ {\color{red}d_3} & b_3 & c_3 \end{vmatrix} } { \begin{vmatrix} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \end{vmatrix}}, \quad

y = \frac {\begin{vmatrix} a_1 & {\color{red}d_1} & c_1 \\ a_2 & {\color{red}d_2} & c_2 \\ a_3 & {\color{red}d_3} & c_3 \end{vmatrix}} {\begin{vmatrix} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \end{vmatrix}}, \text{ and } z = \frac { \begin{vmatrix} a_1 & b_1 & {\color{red}d_1} \\ a_2 & b_2 & {\color{red}d_2} \\ a_3 & b_3 & {\color{red}d_3} \end{vmatrix}} {\begin{vmatrix} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \end{vmatrix} }.$$

Ricci calculus
Cramer's rule is used in the Ricci calculus in various calculations involving the Christoffel symbols of the first and second kind.

In particular, Cramer's rule can be used to prove that the divergence operator on a Riemannian manifold is invariant with respect to change of coordinates. We give a direct proof, suppressing the role of the Christoffel symbols. Let $$(M,g)$$ be a Riemannian manifold equipped with local coordinates $$ (x^1, x^2, \dots, x^n)$$. Let $$A=A^i \frac{\partial}{\partial x^i}$$ be a vector field. We use the summation convention throughout.

 * Theorem.
 * The divergence of $$A$$,
 * $$ \operatorname{div} A = \frac{1}{\sqrt{\det g}} \frac{\partial}{\partial x^i} \left( A^i \sqrt{\det g} \right),$$
 * is invariant under change of coordinates.

Let $$(x^1,x^2,\ldots,x^n)\mapsto (\bar x^1,\ldots,\bar x^n)$$ be a coordinate transformation with non-singular Jacobian. Then the classical transformation laws imply that $$A=\bar A^{k}\frac{\partial}{\partial\bar x^{k}}$$ where $$\bar A^{k}=\frac{\partial \bar x^{k}}{\partial x^{j}}A^{j}$$. Similarly, if $$g=g_{mk}\,dx^{m}\otimes dx^{k}=\bar{g}_{ij}\,d\bar x^{i}\otimes d\bar x^{j}$$, then $$\bar{g}_{ij}=\,\frac{\partial x^{m}}{\partial\bar x^{i}}\frac{\partial x^{k}}{\partial \bar x^{j}}g_{mk}$$. Writing this transformation law in terms of matrices yields $$\bar g=\left(\frac{\partial x}{\partial\bar{x}}\right)^{\text{T}}g\left(\frac{\partial x}{\partial\bar{x}}\right)$$, which implies $$\det\bar g=\left(\det\left(\frac{\partial x}{\partial\bar{x}}\right)\right)^{2}\det g$$.

Now one computes
 * $$\begin{align}

\operatorname{div} A &=\frac{1}{\sqrt{\det g}}\frac{\partial}{\partial x^{i}}\left( A^{i}\sqrt{\det g}\right)\\ &=\det\left(\frac{\partial x}{\partial\bar{x}}\right)\frac{1}{\sqrt{\det\bar g}}\frac{\partial \bar x^k}{\partial x^{i}}\frac{\partial}{\partial\bar x^{k}}\left(\frac{\partial x^{i}}{\partial \bar x^{\ell}}\bar{A}^{\ell}\det\!\left(\frac{\partial x}{\partial\bar{x}}\right)^{\!\!-1}\!\sqrt{\det\bar g}\right). \end{align}$$ In order to show that this equals $$\frac{1}{\sqrt{\det\bar g}}\frac{\partial}{\partial\bar x^{k}}\left(\bar A^{k}\sqrt{\det\bar{g}}\right)$$, it is necessary and sufficient to show that
 * $$\frac{\partial\bar x^{k}}{\partial x^{i}}\frac{\partial}{\partial\bar x^{k}}\left(\frac{\partial x^{i}}{\partial \bar x^{\ell}}\det\!\left(\frac{\partial x}{\partial\bar{x}}\right)^{\!\!\!-1}\right)=0\qquad\text{for all } \ell, $$

which is equivalent to
 * $$\frac{\partial}{\partial \bar x^{\ell}}\det\left(\frac{\partial x}{\partial\bar{x}}\right)

=\det\left(\frac{\partial x}{\partial\bar{x}}\right)\frac{\partial\bar x^{k}}{\partial x^{i}}\frac{\partial^{2}x^{i}}{\partial\bar x^{k}\partial\bar x^{\ell}}. $$ Carrying out the differentiation on the left-hand side, we get:
 * $$\begin{align}

\frac{\partial}{\partial\bar x^{\ell}}\det\left(\frac{\partial x}{\partial\bar{x}}\right) &=(-1)^{i+j}\frac{\partial^{2}x^{i}}{\partial\bar x^{\ell}\partial\bar x^{j}}\det M(i|j)\\ &=\frac{\partial^{2}x^{i}}{\partial\bar x^{\ell}\partial\bar x^{j}}\det\left(\frac{\partial x}{\partial\bar{x}}\right)\frac{(-1)^{i+j}}{\det\left(\frac{\partial x}{\partial\bar{x}}\right)}\det M(i|j)=(\ast), \end{align}$$ where $$M(i|j)$$ denotes the matrix obtained from $$\left(\frac{\partial x}{\partial\bar{x}}\right)$$ by deleting the $$i$$th row and $$j$$th column. But Cramer's Rule says that
 * $$\frac{(-1)^{i+j}}{\det\left(\frac{\partial x}{\partial\bar{x}}\right)}\det M(i|j) $$

is the $$(j,i)$$th entry of the matrix $$\left(\frac{\partial \bar{x}}{\partial x}\right)$$. Thus
 * $$(\ast)=\det\left(\frac{\partial x}{\partial\bar{x}}\right)\frac{\partial^{2}x^{i}}{\partial\bar x^{\ell}\partial\bar x^{j}}\frac{\partial\bar x^{j}}{\partial x^{i}},$$

completing the proof.

Computing derivatives implicitly
Consider the two equations $$F(x, y, u, v) = 0$$ and $$G(x, y, u, v) = 0$$. When u and v are independent variables, we can define $$x = X(u, v)$$ and $$y = Y(u, v).$$

An equation for $$\dfrac{\partial x}{\partial u}$$ can be found by applying Cramer's rule.

First, calculate the first derivatives of F, G, x, and y:

 * $$\begin{align}

dF &= \frac{\partial F}{\partial x} dx + \frac{\partial F}{\partial y} dy +\frac{\partial F}{\partial u} du +\frac{\partial F}{\partial v} dv = 0 \\[6pt] dG &= \frac{\partial G}{\partial x} dx + \frac{\partial G}{\partial y} dy +\frac{\partial G}{\partial u} du +\frac{\partial G}{\partial v} dv = 0 \\[6pt] dx &= \frac{\partial X}{\partial u} du + \frac{\partial X}{\partial v} dv \\[6pt] dy &= \frac{\partial Y}{\partial u} du + \frac{\partial Y}{\partial v} dv. \end{align}$$

Substituting dx, dy into dF and dG, we have:

 * $$\begin{align}

dF &= \left(\frac{\partial F}{\partial x} \frac{\partial x}{\partial u} +\frac{\partial F}{\partial y} \frac{\partial y}{\partial u} + \frac{\partial F}{\partial u} \right) du + \left(\frac{\partial F}{\partial x} \frac{\partial x}{\partial v} +\frac{\partial F}{\partial y} \frac{\partial y}{\partial v} +\frac{\partial F}{\partial v} \right) dv = 0 \\ [6pt] dG &= \left(\frac{\partial G}{\partial x} \frac{\partial x}{\partial u} +\frac{\partial G}{\partial y} \frac{\partial y}{\partial u} +\frac{\partial G}{\partial u} \right) du + \left(\frac{\partial G}{\partial x} \frac{\partial x}{\partial v} +\frac{\partial G}{\partial y} \frac{\partial y}{\partial v} +\frac{\partial G}{\partial v} \right) dv = 0. \end{align}$$

Since u, v are both independent, the coefficients of du, dv must be zero. So we can write out equations for the coefficients:

 * $$\begin{align}

\frac{\partial F}{\partial x} \frac{\partial x}{\partial u} +\frac{\partial F}{\partial y} \frac{\partial y}{\partial u} & = -\frac{\partial F}{\partial u} \\[6pt] \frac{\partial G}{\partial x} \frac{\partial x}{\partial u} +\frac{\partial G}{\partial y} \frac{\partial y}{\partial u} & = -\frac{\partial G}{\partial u} \\[6pt] \frac{\partial F}{\partial x} \frac{\partial x}{\partial v} +\frac{\partial F}{\partial y} \frac{\partial y}{\partial v} & = -\frac{\partial F}{\partial v} \\[6pt] \frac{\partial G}{\partial x} \frac{\partial x}{\partial v} +\frac{\partial G}{\partial y} \frac{\partial y}{\partial v} & = -\frac{\partial G}{\partial v}. \end{align}$$

Now, by Cramer's rule, we see that:

 * $$\frac{\partial x}{\partial u} = \frac{\begin{vmatrix} -\frac{\partial F}{\partial u} & \frac{\partial F}{\partial y} \\ -\frac{\partial G}{\partial u} & \frac{\partial G}{\partial y}\end{vmatrix}}{\begin{vmatrix}\frac{\partial F}{\partial x} & \frac{\partial F}{\partial y} \\ \frac{\partial G}{\partial x} & \frac{\partial G}{\partial y}\end{vmatrix}}.$$

This is now a formula in terms of two Jacobians:

 * $$\frac{\partial x}{\partial u} = -\frac{\left(\frac{\partial (F, G)}{\partial (u, y)}\right)}{\left(\frac{\partial (F, G)}{\partial(x, y)}\right)}.$$

Similar formulas can be derived for $$\frac{\partial x}{\partial v}, \frac{\partial y}{\partial u}, \frac{\partial y}{\partial v}.$$

Integer programming
Cramer's rule can be used to prove that an integer programming problem whose constraint matrix is totally unimodular and whose right-hand side is integer, has integer basic solutions. This makes the integer program substantially easier to solve.

Ordinary differential equations
Cramer's rule is used to derive the general solution to an inhomogeneous linear differential equation by the method of variation of parameters.

Geometric interpretation
Cramer's rule has a geometric interpretation that can be considered also a proof or simply giving insight about its geometric nature. These geometric arguments work in general and not only in the case of two equations with two unknowns presented here.

Given the system of equations

 * $$\begin{matrix}a_{11}x_1+a_{12}x_2&=b_1\\a_{21}x_1+a_{22}x_2&=b_2\end{matrix}$$

it can be considered as an equation between vectors

 * $$x_1\binom{a_{11}}{a_{21}}+x_2\binom{a_{12}}{a_{22}}=\binom{b_1}{b_2}. $$

The area of the parallelogram determined by $$\binom{a_{11}}{a_{21}}$$ and $$\binom{a_{12}}{a_{22}}$$ is given by the determinant of the system of equations:

 * $$\begin{vmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{vmatrix}.$$

In general, when there are more variables and equations, the determinant of $n$ vectors of length $n$ will give the volume of the parallelepiped determined by those vectors in the $n$-th dimensional Euclidean space.

Therefore, the area of the parallelogram determined by $$x_1\binom{a_{11}}{a_{21}}$$ and $$\binom{a_{12}}{a_{22}}$$ has to be $$x_1$$ times the area of the first one since one of the sides has been multiplied by this factor. Now, this last parallelogram, by Cavalieri's principle, has the same area as the parallelogram determined by $$\binom{b_1}{b_2}=x_1\binom{a_{11}}{a_{21}}+x_2\binom{a_{12}}{a_{22}}$$ and $$\binom{a_{12}}{a_{22}}.$$

Equating the areas of this last and the second parallelogram gives the equation

 * $$\begin{vmatrix}b_1&a_{12}\\b_2&a_{22}\end{vmatrix} = \begin{vmatrix}a_{11}x_1&a_{12}\\a_{21}x_1&a_{22}\end{vmatrix} =x_1 \begin{vmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{vmatrix} $$

from which Cramer's rule follows.

A proof by abstract linear algebra
This is a restatement of the proof above in abstract language.

Consider the map $$\mathbf{x}=(x_1,\ldots, x_n) \mapsto \frac{1}{\det A} \left(\det (A_1),\ldots, \det(A_n)\right),$$ where $$A_i$$ is the matrix $$A$$ with $$\mathbf{x}$$ substituted in the $$i$$th column, as in Cramer's rule. Because of linearity of determinant in every column, this map is linear. Observe that it sends the $$i$$th column of $$A$$ to the $$i$$th basis vector $$\mathbf{e}_i=(0,\ldots, 1, \ldots, 0) $$ (with 1 in the $$i$$th place), because determinant of a matrix with a repeated column is 0. So we have a linear map which agrees with the inverse of $$A$$ on the column space; hence it agrees with $$A^{-1}$$ on the span of the column space. Since $$A$$ is invertible, the column vectors span all of $$\mathbb{R}^n$$, so our map really is the inverse of $$A$$. Cramer's rule follows.

A short proof
A short proof of Cramer's rule can be given by noticing that $$x_1$$ is the determinant of the matrix

 * $$X_1=\begin{bmatrix}

x_1 & 0 & 0 & \cdots & 0\\ x_2 & 1 & 0 & \cdots & 0\\ x_3 & 0 & 1 & \cdots & 0\\ \vdots & \vdots & \vdots & \ddots &\vdots \\ x_n & 0 & 0 & \cdots & 1 \end{bmatrix}$$

On the other hand, assuming that our original matrix $A$ is invertible, this matrix $$X_1$$ has columns $$A^{-1}\mathbf{b}, A^{-1}\mathbf{v}_2, \ldots, A^{-1}\mathbf{v}_n $$, where $$\mathbf{v}_n$$ is the n-th column of the matrix $A$. Recall that the matrix $$A_1$$ has columns $$\mathbf{b}, \mathbf{v}_2, \ldots, \mathbf{v}_n $$, and therefore $$X_1=A^{-1}A_1$$. Hence, by using that the determinant of the product of two matrices is the product of the determinants, we have

 * $$ x_1= \det (X_1) = \det (A^{-1}) \det (A_1)= \frac{\det (A_1)}{\det (A)}.$$

The proof for other $$x_j$$ is similar.

Using Geometric Algebra
see here

Inconsistent and indeterminate cases
A system of equations is said to be inconsistent when there are no solutions and it is called indeterminate when there is more than one solution. For linear equations, an indeterminate system will have infinitely many solutions (if it is over an infinite field), since the solutions can be expressed in terms of one or more parameters that can take arbitrary values.

Cramer's rule applies to the case where the coefficient determinant is nonzero. In the 2×2 case, if the coefficient determinant is zero, then the system is incompatible if the numerator determinants are nonzero, or indeterminate if the numerator determinants are zero.

For 3×3 or higher systems, the only thing one can say when the coefficient determinant equals zero is that if any of the numerator determinants are nonzero, then the system must be inconsistent. However, having all determinants zero does not imply that the system is indeterminate. A simple example where all determinants vanish (equal zero) but the system is still incompatible is the 3×3 system x+y+z=1, x+y+z=2, x+y+z=3.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Cramer's rule


text:
Borgward

The former Borgward car manufacturing company, based in Bremen, Germany, was founded by Carl F. W. Borgward (1890–1963). It produced cars of four brands, which were sold to a diversified international customer base: Borgward, Hansa, Goliath and Lloyd. Borgward's Isabella was one of the most popular German premium models in the 1950s, while Lloyd's Alexander / Lloyd 600 model offered affordable mobility to many working-class motorists. The group ceased operations in 1961, following controversial insolvency proceedings.

The brand was revived in the 21st century, with the Stuttgart-based Borgward Group AG designing and marketing cars manufactured in China. After struggling to remain solvent, it also filed for bankruptcy in 2022.

Origins of the component companies
The origins of the company go back to 1905 with the establishment in Varel (near Bremen) of Hansa Automobilgesellschaft and the foundation in Bremen itself of NAMAG, maker of the Lloyd car. These two businesses merged in 1914 to form the "Hansa-Lloyd-Werke A.G." After the war, in the troubled economic situation then confronting Germany, the business failed to prosper and by the late 1920s faced bankruptcy. For Carl Borgward, already the successful creator of the Goliath-Blitzkarren business, the misfortunes of Hansa-Lloyd presented an opportunity to greatly expand the scope of his auto business, and he took control of it.

Blitzkarren
The first vehicle Carl Borgward designed was the 1924 Blitzkarren (lightning cart), a tiny three-wheeled van with 2 hp, which was successful in the market gap it filled. Traders with a small budget bought it for delivery. The Reichspost ordered many of them for postal service.

Hansa-Lloyd
In 1929, Borgward became the director of Hansa-Lloyd AG having been able to merge his Goliath-Werke Borgward & Co. with Hansa-Lloyd. The small Goliath-Blitzkarren had by now evolved into the three-wheeled timber-framed synthetic-leather-bodied 5 or 7 hp Goliath Pionier. Borgward turned his attention to the other businesses and led the development of the Hansa Konsul. In February 1937, there came the new Hansa Borgward 2000 and in 1939 its name was shortened to Borgward 2000. The 2000 model was followed by the Borgward 2300 which remained in production until 1942.

After World War II, in 1946 Carl Borgward used some of the brand names from businesses he had acquired over the years to found three separate companies: Borgward, Goliath and Lloyd. This was intended to increase the quantity of steel allocated to his business at a time of austerity and rationing. For many purposes the companies would be run as a single entity; but in a business operated by a man to whom delegation did not come naturally, the proliferation of legal entities nevertheless added unhelpful layers of complexity through the 1950s and encouraged a broadening of the range which in the end proved financially unsustainable with the sales volumes achievable. In 1949 the company presented the Borgward Hansa 1500.

One of the top engineers at Borgward from 1938 to 1952 was Dipl. Ing. Hubert M. Meingast.

Isabella and P100
Production of the Borgward Isabella began in 1954. The Isabella would become Borgward's most popular model and remained in production for the life of the company. In 1959 the Borgward P100 was introduced, equipped with pneumatic suspension.

Sports racers
Borgward introduced a line of 1500 cc sports racers in the 1950s, with the 16-valve engine from these becoming a successful Formula Two power unit (which was also used by some F1 privateers in 1961).

Controversial company bankruptcy
In 1961, the company was forced into liquidation by creditors. Carl Borgward died in July 1963, still insisting the company had been technically solvent. This proved to be true in the sense that after the creditors were paid in full, there was still 4.5 million Marks left over from the business.

Reports of difficulties at Borgward surfaced in an article that appeared in Germany's news magazine Der Spiegel on 14 December 1960. A Spiegel article was highlighted by means of a picture of Borgward, cigar in mouth, on the magazine's front cover. It was strongly critical of his business approach, and included many of the arguments later advanced to explain or justify the company's demise. The widest range of cars from any manufacturer in Germany, produced by three till recently operationally autonomous companies (Borgward, Goliath and Lloyd) was supporting a turnover of only 650 million Marks, placing the overall sales value from the combined Borgward auto businesses only in fifth position among Germany's auto-makers. The 70-year-old Carl Borgward's "hands-on" insistence on an increasingly manic proliferation of new and modified models featuring adventurous, but under-developed technological innovations (fast manisch[e] Konstruierwut) gave rise to components which too often did not work, broke down or fell apart, resulting in massive bills for pre-delivery remediation and/or post delivery warranty work that found their way back to the company.

The December 1960 Der Spiegel article was not the only serious public criticism targeting Borgward at this time: suddenly stridently negative (if more succinct) comments also turned up in the mass-market Bild newspaper and in television reports. Critical media commentaries also appeared concerning large loans to the Borgward Group provided by the local Landesbank.

It is apparent that the business was confronting cash-flow difficulties at the end of 1960. Capital intensive businesses such as auto manufacturing use their expensive machines and tools most efficiently if they use them constantly at full capacity, but the car market in Europe in the 1950s/60s was more seasonal than today, with sales diminishing in Winter, then peaking in the early summer months: Borgward's inventory of unsold cars at the end of 1960 was higher than usual, reflecting ambitious growth plans, most obviously in respect of the United States market The December 1960 Der Spiegel article speculated that of the 15,000 Borgward cars ordered by the North American dealers in 1960 (and of the 12,000 delivered to them) 6,000 might have to be taken back following a slump in North American demand. (Borgward was not the only European auto maker hit by a North American slump in demand for imported cars during 1960. In the same year two ships carrying Renault Dauphines were turned back in mid-Atlantic because the docks in New York were overcrowded with unsold Dauphines. )

At the end of December 1960 Borgward approached the bank for a further one million Marks of credit, the loan to be backed by a guarantee from the Bremen regional government which initially the Bremen senators agreed to provide. However, following the flood of critical press comment the senators withdrew their guarantee. They now required Carl Borgward to pledge the company itself to the state in return for the guarantee. After a tense 13-hour meeting widely reported in a still hostile media, Borgward agreed to the senate's terms on 4 February 1961, thereby averting the bankruptcy of the business.

The Bremen Senate also insisted on appointing its own nominee as chairman of the company's supervisory board. The man they chose was Johannes Semler whom reports generally describe as a "Wirtschaftsprüfer" (public auditor), though this designation, especially once translated into English, does less than full justice to the breadth of Semler's career. He had studied law at university and worked initially as a lawyer. The scion of a leading Hamburg political family, in 1945 he had himself been a founding member of the centre-right CSU party, and was a member of the Bundestag between 1950 and 1953. Despite his Hamburg origins, Semler was by this time based in Munich, with a network of contacts in the Bavarian establishment that probably included fellow CSU politician and the future German chancellor, Ludwig Erhard, who in 1948 had succeeded Semler in a top administrative position within the Bizone. The appointment of Johannes Semler as the representative of the Bremen senators to chair the Borgward supervisory board would, in retrospect, contribute to the controversy that followed the Borgward bankruptcy.

On 28 July 1961, Semler, as chairman of the supervisory board, joined the directors of the three companies Borgward, Goliath and Lloyd to instigate proceedings for the establishment of a "Vergleichsverfahren", which would have provided for a court sanctioned scheme of arrangement enabling the business to continue to trade while at the same time protecting the interests of creditors. Two months later, however, in September 1961, the Borgward and Goliath businesses were declared bankrupt, followed in November by the Lloyd business. Subsequent "conspiracy theorists" have suggested that Semler, for reasons of his own, never had any intention of allowing the Borgward auto-businesses to survive.

Post mortem
The German magazine Der Spiegel published a thoughtful piece in 1966, implying that with a little more support, and if the proprietor had been more willing to take advice from his own directors, the Borgward company could have easily overcome its financial problems of 1961. But Carl Borgward was financially naive and reluctant to accept advice: his preferred source of credit had always involved shunning the banks and simply taking extra time to pay his creditors, rejecting advice on the financing of his business from his own finance director. By autumn 1960 he was holding on to unpaid creditor invoices worth more than 100 Million Marks for sheet metal and tyres alone. Given that all the company's creditors were eventually paid in full, the liquidation decision appeared nevertheless to have been taken prematurely.

Production in Argentina
Borgward Argentina was founded in 1954 as a joint venture of Carl F. Borgward HMBH and IAME (Aeronautics and Mechanical Industries) intended to equip the Rastrojero, a small pickup truck. The engine was manufactured at the plant that Borgward had in the town of Isidro Casanova, Buenos Aires province, at a production rate of 20 units per day with almost 800 employees. The production of Borgward Isabella was carried out in Cordoba city, by using Argentine engines, local components (glass, batteries, tires) and other pieces from Germany. This model production started in 1960 at the booming of Argentina automotive industry development, with a production plan of 500 units for that year.

When the German parent company closed its doors in 1961, the operation happened to have local control, and continued for a short time to complete the total manufacture of 1,050 cars during its short life in Argentine territory.

Production in Mexico
As part of the bankruptcy process, in 1963, all manufacturing equipment for the Borgward Isabella and P100 was sold to a buyer in Monterrey, Mexico. Production in Mexico was delayed, but was started in August 1967 by entrepreneur and trucking magnate Gregorio Ramirez Gonzalez. Production in Mexico ceased in 1970.

Revival
In 2008, the Borgward Group AG was formed in Lucerne by Christian Borgward (grandson of Carl F. W. Borgward) and Karlheinz L. Knöss. The new company later moved to Stuttgart. With both investment and manufacture by Beiqi Foton Motor (a subsidiary of BAIC, a major Chinese automotive group), the Borgward group had started to sell SUVs by January 2017.

It filed for bankruptcy in Beijing on April 8, 2022.

Cars

 * Borgward 2000
 * Borgward 2300
 * Borgward Arabella
 * Borgward Hansa 1500
 * Borgward Hansa 1800
 * Borgward Hansa 1800 D
 * Borgward Hansa 2400
 * Borgward Isabella
 * Borgward P100
 * Borgward 230

Trucks

 * Borgward B 611
 * Borgward B 622
 * Borgward B 655
 * Borgward B 1000
 * Borgward B 1000Z
 * Borgward B 1250
 * Borgward B 1500
 * Borgward B 1500F
 * Borgward B 2000
 * Borgward B 2500
 * Borgward B 3000
 * Borgward B 4000
 * Borgward B 4500
 * Borgward B 522
 * Borgward B 533
 * Borgward B 544
 * Borgward B 555

Military vehicles

 * Sd.Kfz. 301 Borgward B IV
 * Sd.Kfz. 302/303a/303b Goliath tracked mine

Helicopters

 * Borgward Kolibri

title: Borgward


text:
Vorticity

In continuum mechanics, vorticity is a pseudovector (or axial vector) field that describes the local spinning motion of a continuum near some point (the tendency of something to rotate ), as would be seen by an observer located at that point and traveling along with the flow. It is an important quantity in the dynamical theory of fluids and provides a convenient framework for understanding a variety of complex flow phenomena, such as the formation and motion of vortex rings.

Mathematically, the vorticity $$\boldsymbol{\omega}$$ is the curl of the flow velocity $$\mathbf v$$:

 * $$\boldsymbol{\omega} \equiv \nabla \times \mathbf v\,,$$

where $$\nabla$$ is the nabla operator. Conceptually, $$\boldsymbol{\omega}$$ could be determined by marking parts of a continuum in a small neighborhood of the point in question, and watching their relative displacements as they move along the flow. The vorticity $$\boldsymbol{\omega}$$ would be twice the mean angular velocity vector of those particles relative to their center of mass, oriented according to the right-hand rule. By its own definition, the vorticity vector is a solenoidal field since $$\nabla\cdot\boldsymbol\omega=0.$$

In a two-dimensional flow, $$\boldsymbol{\omega}$$ is always perpendicular to the plane of the flow, and can therefore be considered a scalar field.

Mathematical definition and properties
Mathematically, the vorticity of a three-dimensional flow is a pseudovector field, usually denoted by $$\boldsymbol{\omega}$$, defined as the curl of the velocity field $$\mathbf v$$ describing the continuum motion. In Cartesian coordinates:

 * $$\begin{align}

\boldsymbol{\omega} = \nabla \times \mathbf v = \left(        \dfrac{\partial v_z}{\partial y} - \dfrac{\partial v_y}{\partial z},         \dfrac{\partial v_x}{\partial z} - \dfrac{\partial v_z}{\partial x},         \dfrac{\partial v_y}{\partial x} - \dfrac{\partial v_x}{\partial y}       \right) \,. \end{align}$$

In words, the vorticity tells how the velocity vector changes when one moves by an infinitesimal distance in a direction perpendicular to it.

In a two-dimensional flow where the velocity is independent of the $$z$$-coordinate and has no $$z$$-component, the vorticity vector is always parallel to the $$z$$-axis, and therefore can be expressed as a scalar field multiplied by a constant unit vector $$\hat{z}$$:
 * $$\begin{align}

\boldsymbol{\omega} = \nabla \times \mathbf v   = \left(\frac{\partial v_y}{\partial x} - \frac{\partial v_x}{\partial y}\right)\mathbf e_z\,. \end{align}$$

The vorticity is also related to the flow's circulation (line integral of the velocity) along a closed path by the (classical) Stokes' theorem. Namely, for any infinitesimal surface element $C$ with normal direction $$\mathbf n$$ and area $$dA$$, the circulation $$d\Gamma$$ along the perimeter of $$C$$ is the dot product $$\boldsymbol{\omega} \cdot (\mathbf n \, dA)$$ where $$\boldsymbol{\omega}$$ is the vorticity at the center of $$C$$.

Since vorticity is a axial vector, it can be associated with a second-order antisymmetric tensor $$\boldsymbol\Omega$$ (the so-called vorticity or rotation tensor), which is said to be the dual of $$\boldsymbol\omega$$. The relation between the two quantities, in index notation, are given by

 * $$\Omega_{ij}=\varepsilon_{ijk}\omega_k, \qquad \omega_i = \frac{1}{2}\varepsilon_{ijk}\Omega_{jk}$$

where $$\varepsilon_{ijk}$$ is the three-dimensional Levi-Civita tensor. The vorticity tensor is simply the antisymmetric part of the tensor $$\nabla\mathbf v$$, i.e.,

 * $$\boldsymbol\Omega = \frac{1}{2}\left[\nabla\mathbf v - (\nabla\mathbf v)^T\right] \quad \text{or} \quad \Omega_{ij} = \frac{1}{2}\left(\frac{\partial v_i}{\partial x_j}-\frac{\partial v_i}{\partial x_i}\right).$$

Examples
In a mass of continuum that is rotating like a rigid body, the vorticity is twice the angular velocity vector of that rotation. This is the case, for example, in the central core of a Rankine vortex.

The vorticity may be nonzero even when all particles are flowing along straight and parallel pathlines, if there is shear (that is, if the flow speed varies across streamlines). For example, in the laminar flow within a pipe with constant cross section, all particles travel parallel to the axis of the pipe; but faster near that axis, and practically stationary next to the walls. The vorticity will be zero on the axis, and maximum near the walls, where the shear is largest.

Conversely, a flow may have zero vorticity even though its particles travel along curved trajectories. An example is the ideal irrotational vortex, where most particles rotate about some straight axis, with speed inversely proportional to their distances to that axis. A small parcel of continuum that does not straddle the axis will be rotated in one sense but sheared in the opposite sense, in such a way that their mean angular velocity about their center of mass is zero.

 * {| border="0"

$v ∝ r$ $v ∝ 1⁄r$ Absolute velocities around the highlighted point:
 * style="text-align:center;" colspan=3 | Example flows:
 * valign="top" | [[File:Vorticity Figure 01 a-m.gif]]
 * valign="top" | [[File:Vorticity Figure 03 a-m.gif]]
 * valign="top" | [[File:Vorticity Figure 02 a-m.gif]]
 * style="text-align:center;" | Rigid-body-like vortex
 * valign="top" | [[File:Vorticity Figure 02 a-m.gif]]
 * style="text-align:center;" | Rigid-body-like vortex
 * style="text-align:center;" | Rigid-body-like vortex
 * style="text-align:center;" | Parallel flow with shear
 * style="text-align:center;" | Irrotational vortex
 * style="text-align:center;" colspan=3 | where $v$ is the velocity of the flow, $r$ is the distance to the center of the vortex and ∝ indicates proportionality.
 * style="text-align:center;" colspan=3 | where ⇭⇭⇭ is the velocity of the flow, ⇭⇭⇭ is the distance to the center of the vortex and ∝ indicates proportionality.
 * valign="top" | [[File:Vorticity Figure 01 b.png]]
 * valign="top" | [[File:Vorticity Figure 03 b.png]]
 * valign="top" | [[File:Vorticity Figure 02 b.png]]
 * style="text-align:center;" colspan=3 | Relative velocities (magnified) around the highlighted point
 * valign="top" | [[File:Vorticity Figure 01 c.png]]
 * valign="top" | [[File:Vorticity Figure 03 c.png]]
 * valign="top" | [[File:Vorticity Figure 02 c.png]]
 * style="text-align:center;" | Vorticity ≠ 0
 * style="text-align:center;" | Vorticity ≠ 0
 * style="text-align:center;" | Vorticity = 0
 * }
 * style="text-align:center;" | Vorticity ≠ 0
 * style="text-align:center;" | Vorticity ≠ 0
 * style="text-align:center;" | Vorticity = 0
 * }

Another way to visualize vorticity is to imagine that, instantaneously, a tiny part of the continuum becomes solid and the rest of the flow disappears. If that tiny new solid particle is rotating, rather than just moving with the flow, then there is vorticity in the flow. In the figure below, the left subfigure demonstrates no vorticity, and the right subfigure demonstrates existence of vorticity.

 * [[File:Illustration of vorticity.svg]]

Evolution
The evolution of the vorticity field in time is described by the vorticity equation, which can be derived from the Navier–Stokes equations.

In many real flows where the viscosity can be neglected (more precisely, in flows with high Reynolds number), the vorticity field can be modeled by a collection of discrete vortices, the vorticity being negligible everywhere except in small regions of space surrounding the axes of the vortices. This is true in the case of two-dimensional potential flow (i.e. two-dimensional zero viscosity flow), in which case the flowfield can be modeled as a complex-valued field on the complex plane.

Vorticity is useful for understanding how ideal potential flow solutions can be perturbed to model real flows. In general, the presence of viscosity causes a diffusion of vorticity away from the vortex cores into the general flow field; this flow is accounted for by a diffusion term in the vorticity transport equation.

Vortex lines and vortex tubes
A vortex line or vorticity line is a line which is everywhere tangent to the local vorticity vector. Vortex lines are defined by the relation

 * $$\frac{dx}{\omega_x} = \frac{dy}{\omega_y} = \frac{dz}{\omega_z}\,,$$

where $$\boldsymbol{\omega} = (\omega_x, \omega_y, \omega_z)$$ is the vorticity vector in Cartesian coordinates.

A vortex tube is the surface in the continuum formed by all vortex lines passing through a given (reducible) closed curve in the continuum. The 'strength' of a vortex tube (also called vortex flux) is the integral of the vorticity across a cross-section of the tube, and is the same everywhere along the tube (because vorticity has zero divergence). It is a consequence of Helmholtz's theorems (or equivalently, of Kelvin's circulation theorem) that in an inviscid fluid the 'strength' of the vortex tube is also constant with time. Viscous effects introduce frictional losses and time dependence.

In a three-dimensional flow, vorticity (as measured by the volume integral of the square of its magnitude) can be intensified when a vortex line is extended — a phenomenon known as vortex stretching. This phenomenon occurs in the formation of a bathtub vortex in outflowing water, and the build-up of a tornado by rising air currents.

Rotating-vane vorticity meter
A rotating-vane vorticity meter was invented by Russian hydraulic engineer A. Ya. Milovich (1874–1958). In 1913 he proposed a cork with four blades attached as a device qualitatively showing the magnitude of the vertical projection of the vorticity and demonstrated a motion-picture photography of the float's motion on the water surface in a model of a river bend.

Rotating-vane vorticity meters are commonly shown in educational films on continuum mechanics (famous examples include the NCFMF's "Vorticity" and "Fundamental Principles of Flow" by Iowa Institute of Hydraulic Research ).

Aeronautics
In aerodynamics, the lift distribution over a finite wing may be approximated by assuming that each spanwise segment of the wing has a semi-infinite trailing vortex behind it. It is then possible to solve for the strength of the vortices using the criterion that there be no flow induced through the surface of the wing. This procedure is called the vortex panel method of computational fluid dynamics. The strengths of the vortices are then summed to find the total approximate circulation about the wing. According to the Kutta–Joukowski theorem, lift per unit of span is the product of circulation, airspeed, and air density.

Atmospheric sciences
The relative vorticity is the vorticity relative to the Earth induced by the air velocity field. This air velocity field is often modeled as a two-dimensional flow parallel to the ground, so that the relative vorticity vector is generally scalar rotation quantity perpendicular to the ground. Vorticity is positive when – looking down onto the Earth's surface – the wind turns counterclockwise. In the northern hemisphere, positive vorticity is called cyclonic rotation, and negative vorticity is anticyclonic rotation; the nomenclature is reversed in the Southern Hemisphere.

The absolute vorticity is computed from the air velocity relative to an inertial frame, and therefore includes a term due to the Earth's rotation, the Coriolis parameter.

The potential vorticity is absolute vorticity divided by the vertical spacing between levels of constant (potential) temperature (or entropy). The absolute vorticity of an air mass will change if the air mass is stretched (or compressed) in the vertical direction, but the potential vorticity is conserved in an adiabatic flow. As adiabatic flow predominates in the atmosphere, the potential vorticity is useful as an approximate tracer of air masses in the atmosphere over the timescale of a few days, particularly when viewed on levels of constant entropy.

The barotropic vorticity equation is the simplest way for forecasting the movement of Rossby waves (that is, the troughs and ridges of 500 hPa geopotential height) over a limited amount of time (a few days). In the 1950s, the first successful programs for numerical weather forecasting utilized that equation.

In modern numerical weather forecasting models and general circulation models (GCMs), vorticity may be one of the predicted variables, in which case the corresponding time-dependent equation is a prognostic equation.

Related to the concept of vorticity is the helicity $$H(t)$$, defined as

 * $$H(t) = \int_V \mathbf v \cdot \boldsymbol{\omega} \, dV$$

where the integral is over a given volume $$V$$. In atmospheric science, helicity of the air motion is important in forecasting supercells and the potential for tornadic activity.

Fluid dynamics

 * Biot–Savart law
 * Circulation
 * Vorticity equations
 * Kutta–Joukowski theorem

Atmospheric sciences

 * Prognostic equation
 * Carl-Gustaf Rossby
 * Hans Ertel

title: Vorticity