Virama

Virama (्) is a Sanskrit phonological concept to suppress the inherent vowel that otherwise occurs with every consonant letter, commonly used as a generic term for a codepoint in Unicode, representing either
halanta, hasanta or explicit virāma, a diacritic in many Brahmic scripts, including the Devanagari and Bengali scripts, or
saṃyuktākṣara (Sanskrit: संयुक्ताक्षर) or implicit virama, a conjunct consonant or ligature.
Unicode schemes of scripts writing Mainland Southeast Asia languages, such as that of Burmese script and of Tibetan script, generally don't group the two functions together.
Names
The name is Sanskrit for "cessation, termination, end". As a Sanskrit word, it is used in place of several language-specific terms, such as:
Usage
In Devanagari and many other Indic scripts, a virama is used to cancel the inherent vowel of a consonant letter and represent a consonant without a vowel, a "dead" consonant. For example, in Devanagari,
is a consonant letter, ka,
् is a virāma; therefore,
(ka + virāma) represents a dead consonant k.
If this k is further followed by another consonant letter, for example, ṣa ष, the result might look like , which represents kṣa as ka + (visible) virāma + ṣa. In this case, two elements k क् and ṣa ष are simply placed one by one, side by side. Alternatively, kṣa can be also written as a ligature , which is actually the preferred form.
Generally, when a dead consonant letter C1 and another consonant letter C2 are conjoined, the result may be:
A fully conjoined ligature of C1+C2;
Half-conjoined—
C1-conjoining: a modified form (half form) of C1 attached to the original form (full form) of C2
C2-conjoining: a modified form of C2 attached to the full form of C1; or
Non-ligated: full forms of C1 and C2 with a visible virama.
If the result is fully or half-conjoined, the (conceptual) virama which made C1 dead becomes invisible, logically existing only in a character encoding scheme such as ISCII or Unicode. If the result is not ligated, a virama is visible, attached to C1, actually written.
Basically, those differences are only glyph variants, and three forms are semantically identical. Although there may be a preferred form for a given consonant cluster in each language and some scripts do not have some kind of ligatures or half forms at all, it is generally acceptable to use a nonligature form instead of a ligature form even when the latter is preferred if the font does not have a glyph for the ligature. In some other cases, whether to use a ligature or not is just a matter of taste.
The virāma in the sequence C1 + virāma + C2 may thus work as an invisible control character to ligate C1 and C2 in Unicode. For example,
ka क + virāma + ṣa ष = kṣa
is a fully conjoined ligature. It is also possible that the virāma does not ligate C1 and C2, leaving the full forms of C1 and C2 as they are:
ka + virama + ṣa = kṣa
is an example of such a non-ligated form.
The sequences ङ्क ङ्ख ङ्ग ङ्घ , in common Sanskrit orthography, should be written as conjuncts (the virāma and the top cross line of the second letter disappear, and what is left of the second letter is written under the ङ and joined to it).
End of word
The inherent vowel is not always pronounced, in particular at the end of a word (schwa deletion). No virāma is used for vowel suppression in such cases. Instead, the orthography is based on Sanskrit where all inherent vowels are pronounced, and leaves to the reader of modern languages to delete the schwa when appropriate.
See also
Sukun, a similar diacritic in Arabic script
Zero consonant
References
External links
Blog: Sorting it all Out
Brahmic diacritics chitranzh