Blog Archive

Friday, May 12, 2023

05-12-2023-1542 - state pattern, safe navigation operator, nullable version of that value type, nullable types, union type, primitive types, three value types, interstitial site, holes, voids, unit cell, defect, 2d representation, lattice, 3d arrangement, etc. (draft)

https://en.wikipedia.org/wiki/State_pattern

https://en.wikipedia.org/wiki/Safe_navigation_operator#C.23


C#

C# 6.0 and above have ?., the null-conditional member access operator (which is also called the Elvis operator by Microsoft and is not to be confused with the general usage of the term Elvis operator, whose equivalent in C# is ??, the null coalescing operator) and ?[], the null-conditional element access operator, which performs a null-safe call of an indexer get accessor. If the type of the result of the member access is a value type, the type of the result of a null-conditional access of that member is a nullable version of that value type.[9]

The following example retrieves the name of the author of the first article in an array of articles (provided that each article has an Author member and that each author has an Name member), and results in null if the array is null, if its first element is null, if the Author member of that article is null, or if the Name member of that author is null. Note that an IndexOutOfRangeException is still thrown if the array is non-null but empty (i.e. zero-length). 

https://en.wikipedia.org/wiki/Safe_navigation_operator#C.23

 

Nullable types are a feature of some programming languages which allow a value to be set to the special value NULL instead of the usual possible values of the data type. In statically typed languages, a nullable type is an option type[citation needed], while in dynamically typed languages (where values have types, but variables do not), equivalent behavior is provided by having a single null value.

NULL is frequently used to represent a missing value or invalid value, such as from a function that failed to return or a missing field in a database, as in NULL in SQL. In other words NULL is undefined.

Primitive types such as integers and Booleans cannot generally be null, but the corresponding nullable types (nullable integer and nullable Boolean, respectively) can also assume the NULL value.[jargon][citation needed] This can be represented in ternary logic as FALSE,NULL,TRUE as in three-valued logic.

Example

An integer variable may represent integers, but 0 (zero) is a special case because 0 in many programming languages can mean "false". Also this doesn't give us any notion of saying that the variable is empty, a need for which occurs in many circumstances. This need can be achieved with a nullable type. In programming languages like C# 2.0, a nullable integer, for example, can be declared by a question mark (int? x).[1] In programming languages like C# 1.0, nullable types can be defined by an external library[2] as new types (e.g. NullableInteger, NullableBoolean).[3]

A Boolean variable makes the effect more clear. Its values can be either "true" or "false", while a nullable boolean may also contain a representation for "undecided". However, the interpretation or treatment of a logical operation involving such a variable depends on the language.

Compared with null pointers

In contrast, object pointers can be set to NULL by default in most common languages, meaning that the pointer or reference points to nowhere, that no object is assigned (the variable does not point to any object). Nullable references were invented by C. A. R. Hoare in 1965 as part of the Algol W language. Hoare later described his invention as a "billion-dollar mistake".[4] This is because object pointers that can be NULL require the user to check the pointer before using it and require specific code to handle the case when the object pointer is NULL.

Java has classes that correspond to scalar values, such as Integer, Boolean and Float. Combined with autoboxing (automatic usage-driven conversion between object and value), this effectively allows nullable variables for scalar values.[citation needed]

Compared with option types

Nullable type implementations usually adhere to the null object pattern.

There is a more general and formal concept that extend the nullable type concept, it comes from option types, which enforce explicit handling of the exceptional case.

Language support

The following programming languages support nullable types.

Statically typed languages with native null support include:

Statically typed languages with library null support include:

Dynamically-typed languages with null include:

  • Perl scalar variables default to undef and can be set to undef.
  • PHP with NULL type and is_null() method, native nullable type in version 7.1 [11]
  • Python has the None value.[12]
  • Julia has the nothing value (which is of type Nothing) and the Union{T, Nothing} type idiom.[13]
  • Ruby with nil value and NilClass type.
  • JavaScript has a null value

See also

References

 

https://en.wikipedia.org/wiki/Nullable_type

 

In computer science, a union is a value that may have any of several representations or formats within the same position in memory; that consists of a variable that may hold such a data structure. Some programming languages support special data types, called union types, to describe such values and variables. In other words, a union type definition will specify which of a number of permitted primitive types may be stored in its instances, e.g., "float or long integer". In contrast with a record (or structure), which could be defined to contain both a float and an integer; in a union, there is only one value at any given time.

A union can be pictured as a chunk of memory that is used to store variables of different data types. Once a new value is assigned to a field, the existing data is overwritten with the new data. The memory area storing the value has no intrinsic type (other than just bytes or words of memory), but the value can be treated as one of several abstract data types, having the type of the value that was last written to the memory area.

In type theory, a union has a sum type; this corresponds to disjoint union in mathematics.

Depending on the language and type, a union value may be used in some operations, such as assignment and comparison for equality, without knowing its specific type. Other operations may require that knowledge, either by some external information, or by the use of a tagged union.

Untagged unions

Because of the limitations of their use, untagged unions are generally only provided in untyped languages or in a type-unsafe way (as in C). They have the advantage over simple tagged unions of not requiring space to store a data type tag.

The name "union" stems from the type's formal definition. If a type is considered as the set of all values that that type can take on, a union type is simply the mathematical union of its constituting types, since it can take on any value any of its fields can. Also, because a mathematical union discards duplicates, if more than one field of the union can take on a single common value, it is impossible to tell from the value alone which field was last written.

However, one useful programming function of unions is to map smaller data elements to larger ones for easier manipulation. A data structure consisting, for example, of 4 bytes and a 32-bit integer, can form a union with an unsigned 64-bit integer, and thus be more readily accessed for purposes of comparison etc.

Unions in various programming languages

ALGOL 68

ALGOL 68 has tagged unions, and uses a case clause to distinguish and extract the constituent type at runtime. A union containing another union is treated as the set of all its constituent possibilities, and if the context requires it a union is automatically coerced into the wider union. A union can explicitly contain no value, which can be distinguished at runtime. An example is:

 mode node = union (real, int, string, void);
 
 node n := "abc";
 
 case n in
   (real r):   print(("real:", r)),
   (int i):    print(("int:", i)),
   (string s): print(("string:", s)),
   (void):     print(("void:", "EMPTY")),
   out         print(("?:", n))
 esac

The syntax of the C/C++ union type and the notion of casts was derived from ALGOL 68, though in an untagged form.[1]

C/C++

In C and C++, untagged unions are expressed nearly exactly like structures (structs), except that each data member begins at the same location in memory. The data members, as in structures, need not be primitive values, and in fact may be structures or even other unions. C++ (since C++11) also allows for a data member to be any type that has a full-fledged constructor/destructor and/or copy constructor, or a non-trivial copy assignment operator. For example, it is possible to have the standard C++ string as a member of a union.

The primary use of a union is allowing access to a common location by different data types, for example hardware input/output access, bitfield and word sharing, or type punning. Unions can also provide low-level polymorphism. However, there is no checking of types, so it is up to the programmer to be sure that the proper fields are accessed in different contexts. The relevant field of a union variable is typically determined by the state of other variables, possibly in an enclosing struct.

One common C programming idiom uses unions to perform what C++ calls a reinterpret_cast, by assigning to one field of a union and reading from another, as is done in code which depends on the raw representation of the values. A practical example is the method of computing square roots using the IEEE representation. This is not, however, a safe use of unions in general.

Structure and union specifiers have the same form. [ . . . ] The size of a union is sufficient to contain the largest of its members. The value of at most one of the members can be stored in a union object at any time. A pointer to a union object, suitably converted, points to each of its members (or if a member is a bit-field, then to the unit in which it resides), and vice versa.

— ANSI/ISO 9899:1990 (the ANSI C standard) Section 6.5.2.1

Anonymous union

In C++, C11, and as a non-standard extension in many compilers, unions can also be anonymous. Their data members do not need to be referenced, are instead accessed directly. They have some restrictions as opposed to traditional unions: in C11, they must be a member of another structure or union,[2] and in C++, they can not have methods or access specifiers.

Simply omitting the class-name portion of the syntax does not make a union an anonymous union. For a union to qualify as an anonymous union, the declaration must not declare an object. Example:

#include <iostream>
#include <cstdint>

int main() {
   union {
      float f;
      std::uint32_t d; // Assumes float is 32 bits wide
   };

   f = 3.14f;
   std::cout << "Hexadecimal representation of 3.14f:" 
             << std::hex << d << '\n';
}

Anonymous unions are also useful in C struct definitions to provide a sense of namespacing.[3]

Transparent union

In compilers such as GCC, Clang, and IBM XL C for AIX, a transparent_union attribute is available for union types. Types contained in the union can be converted transparently to the union type itself in a function call, provided that all types have the same size. It is mainly intended for function with multiple parameter interfaces, a use necessitated by early Unix extensions and later re-standarisation.[4]

COBOL

In COBOL, union data items are defined in two ways. The first uses the RENAMES (66 level) keyword, which effectively maps a second alphanumeric data item on top of the same memory location as a preceding data item. In the example code below, data item PERSON-REC is defined as a group containing another group and a numeric data item. PERSON-DATA is defined as an alphanumeric data item that renames PERSON-REC, treating the data bytes continued within it as character data.

  01  PERSON-REC.
      05  PERSON-NAME.
          10  PERSON-NAME-LAST    PIC X(12).
          10  PERSON-NAME-FIRST   PIC X(16).
          10  PERSON-NAME-MID     PIC X.
      05  PERSON-ID               PIC 9(9) PACKED-DECIMAL.
  
  01  PERSON-DATA                 RENAMES PERSON-REC.

The second way to define a union type is by using the REDEFINES keyword. In the example code below, data item VERS-NUM is defined as a 2-byte binary integer containing a version number. A second data item VERS-BYTES is defined as a two-character alphanumeric variable. Since the second item is redefined over the first item, the two items share the same address in memory, and therefore share the same underlying data bytes. The first item interprets the two data bytes as a binary value, while the second item interprets the bytes as character values.

  01  VERS-INFO.
      05  VERS-NUM        PIC S9(4) COMP.
      05  VERS-BYTES      PIC X(2)
                          REDEFINES VERS-NUM

Pascal

In Pascal, there are two ways to create unions. One is the standard way through a variant record. The second is a nonstandard means of declaring a variable as absolute, meaning it is placed at the same memory location as another variable or at an absolute address. While all Pascal compilers support variant records, only some support absolute variables.

For the purposes of this example, the following are all integer types: a byte is 8-bits, a word is 16-bits, and an integer is 32-bits.

The following example shows the non-standard absolute form:

VAR
    A: Integer;
    B: Array[1..4] of Byte absolute A;
    C: Integer absolute 0;

In the first example, each of the elements of the array B maps to one of the specific bytes of the variable A. In the second example, the variable C is assigned to the exact machine address 0.

In the following example, a record has variants, some of which share the same location as others:

TYPE
     Shape = (Circle, Square, Triangle);
     Dimensions = record
        case Figure: Shape of 
           Circle: (Diameter: real);
           Square: (Width: real);
           Triangle: (Side: real; Angle1, Angle2: 0..360)
        end;

PL/I

In PL/I then original term for a union was cell,[5] which is still accepted as a synonym for union by several compilers. The union declaration is similar to the structure definition, where elements at the same level within the union declaration occupy the same storage. Elements of the union can be any data type, including structures and array.[6]: pp192–193  Here vers_num and vers_bytes occupy the same storage locations.

  1  vers_info         union,
     5 vers_num        fixed binary,
     5 vers_bytes      pic '(2)A';

An alternative to a union declaration is the DEFINED attribute, which allows alternative declarations of storage, however the data types of the base and defined variables must match.[6]: pp.289–293 

Rust

Rust implements both tagged and untagged unions. In Rust, tagged unions are implemented using the enum keyword. Unlike enumerated types in most other languages, enum variants in Rust can contain additional data in the form of a tuple or struct, making them tagged unions rather than simple enumerated types.[7]

Rust also supports untagged unions using the union keyword. The memory layout of unions in Rust is undefined by default,[8] but a union with the #[repr(C)] attribute will be laid out in memory exactly like the equivalent union in C.[9] Reading the fields of a union can only be done within an unsafe function or block, as the compiler cannot guarantee that the data in the union will be valid for the type of the field; if this is not the case, it will result in undefined behavior.[10]

Syntax and example

C/C++

In C and C++, the syntax is:

union <name>
{
    <datatype>  <1st variable name>;
    <datatype>  <2nd variable name>;
    .
    .
    .
    <datatype>  <nth variable name>;
} <union variable name>;

A structure can also be a member of a union, as the following example shows:

union name1
{
    struct name2
    {  
        int     a;
        float   b;
        char    c;
    } svar;
    int     d;
} uvar;

This example defines a variable uvar as a union (tagged as name1), which contains two members, a structure (tagged as name2) named svar (which in turn contains three members), and an integer variable named d.

Unions may occur within structures and arrays, and vice versa:

struct
{  
    int flags;
    char *name;
    int utype;
    union {
        int ival;
        float fval;
        char *sval;
    } u;
} symtab[NSYM];

The number ival is referred to as symtab[i].u.ival and the first character of string sval by either of *symtab[i].u.sval or symtab[i].u.sval[0].

PHP

Union types were introduced in PHP 8.0.[11] The values are implicitly "tagged" with a type by the language, and may be retrieved by "gettype()".

class Example
{
    private int|float $foo;

    public function squareAndAdd(float|int $bar): int|float
    {
        return $bar ** 2 + $this->foo;
    }
}

Python

Support for typing was introduced in Python 3.5.[12] The new syntax for union types were introduced in Python 3.10.[13]

class Example:
    foo = 0

    def square_and_add(self, bar: int | float) -> int | float:
        return bar ** 2 + self.foo

TypeScript

Union types are supported in TypeScript.[14] The values are implicitly "tagged" with a type by the language, and may be retrieved by "typeof()".

function successor(n: number | bigint): number | bigint {
    return ++n
}

Rust

Tagged unions in Rust use the enum keyword, and can contain tuple and struct variants:

enum Foo {
	Bar(i32),
	Baz { x: String, y: i32 },
}

Untagged unions in Rust use the union keyword:

union Foo {
	bar: i32,
	baz: bool,
}

Reading from the fields of an untagged union results in undefined behavior if the data in the union is not valid as the type of the field, and thus requires an unsafe block:

let x = Foo { bar: 10 };
let y = unsafe { x.bar }; // This will set y to 10, and does not result in undefined behavior.
let z = unsafe { x.baz }; // This results in undefined behavior, as the value stored in x is not a valid bool.

See also

References


  • Ritchie, Dennis M. (March 1993). "The Development of the C Language". ACM SIGPLAN Notices. 28 (3): 201–208. doi:10.1145/155360.155580. The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of. The central notion I captured from Algol was a type structure based on atomic types (including structures), composed into arrays, pointers (references), and functions (procedures). Algol 68's concept of unions and casts also had an influence that appeared later.

  • "6.63 Unnamed Structure and Union Fields". Retrieved 2016-12-29.

  • Siebenmann., Chris. "CUnionsForNamespaces". utcc.utoronto.ca.

  • "Common Type Attributes: transparent_union". Using the GNU Compiler Collection (GCC).

  • IBM Corporation (March 1968). IBM System/360 PL/I Language Specifications (PDF). p. 52. Retrieved Jan 22, 2018.

  • IBM Corporation (Dec 2017). Enterprise PL/I for z/OS PL/I for AIX IBM Developer for z Systems PL/I for windows Language Reference (PDF). Retrieved Jan 22, 2018.

  • "How Rust Implements Tagged Unions - Pat Shaughnessy". patshaughnessy.net. Retrieved 2023-04-25.

  • "Union types - The Rust Reference". doc.rust-lang.org. Retrieved 2023-04-25.

  • "Type layout - The Rust Reference". doc.rust-lang.org. Retrieved 2023-04-25.

  • "Unions - The Rust Reference". doc.rust-lang.org. Retrieved 2023-04-25.

  • Karunaratne, Ayesh. "PHP 8.0: Union Types". PHP.Watch. Retrieved 30 November 2020.

  • "typing — Support for type hints — Python 3.9.7 documentation". docs.python.org. Retrieved 8 September 2021.

  • "PEP 604 -- Allow writing union types as X | Y". Python.org. Retrieved 8 September 2021.

    1. "Handbook - Unions and Intersection Types". www.typescriptlang.org. Retrieved 30 November 2020.

    External links

     

    https://en.wikipedia.org/wiki/Union_type

     https://en.wikipedia.org/wiki/Category:Composite_data_types

    https://en.wikipedia.org/wiki/Object_(computer_science)

    https://en.wikipedia.org/wiki/Instance_(computer_science)

    https://en.wikipedia.org/wiki/Virtual_machine

    https://en.wikipedia.org/wiki/OS-level_virtualization

    https://en.wikipedia.org/wiki/Chroot

    https://en.wikipedia.org/wiki/Kernel_(operating_system)

    https://en.wikipedia.org/wiki/Bootloader

    https://en.wikipedia.org/wiki/Input/output

    https://en.wikipedia.org/wiki/User_space_and_kernel_space

    https://en.wikipedia.org/wiki/Monolithic_kernel

    https://en.wikipedia.org/wiki/Memory_management

    https://en.wikipedia.org/wiki/Computer_data_storage#Secondary_storage

    https://en.wikipedia.org/wiki/Disk_read-and-write_head

    https://en.wikipedia.org/wiki/Disk_storage

    https://en.wikipedia.org/wiki/Nanometre

    https://en.wikipedia.org/wiki/Orders_of_magnitude_(numbers)#10%E2%88%929


    10−9

    (0.000000001; 1000−3; short scale: one billionth; long scale: one milliardth)

    ISO: nano- (n)

    • Mathematics – Lottery: The odds of winning the Grand Prize (matching all 6 numbers) in the US Powerball lottery, with a single ticket, under the rules as of October 2015, are 292,201,338 to 1 against, for a probability of 3.422×10−9 (0.0000003422%).
    • Mathematics – Lottery: The odds of winning the Grand Prize (matching all 6 numbers) in the Australian Powerball lottery, with a single ticket, under the rules as of April 2018, are 134,490,400 to 1 against, for a probability of 7.435×10−9 (0.0000007435%).
    • Mathematics – Lottery: The odds of winning the Jackpot (matching the 6 main numbers) in the UK National Lottery, with 

    https://en.wikipedia.org/wiki/Orders_of_magnitude_(numbers)#10%E2%88%929

     

    Usage

    Nanotechnologies are based on phenomena typically occurring on a scale of nanometres (see nanoscopic scale).[1]

    The nanometre is often used to express dimensions on an atomic scale: the diameter of a helium atom, for example, is about 0.06 nm, and that of a ribosome is about 20 nm. The nanometre is also commonly used to specify the wavelength of electromagnetic radiation near the visible part of the spectrum: visible light ranges from around 400 to 700 nm.[4] The ångström, which is equal to 0.1 nm, was formerly used for these purposes.

    Since the late 1980s, in usages such as the 32 nm and the 22 nm semiconductor node, it has also been used to describe typical feature sizes in successive generations of the ITRS Roadmap for miniaturized semiconductor device fabrication in the semiconductor industry.

    Unicode

    The CJK Compatibility block in Unicode has the symbol U+339A SQUARE NM.

    https://en.wikipedia.org/wiki/Nanometre

     https://en.wikipedia.org/wiki/Density_(computer_storage)

    https://en.wikipedia.org/wiki/Non-volatile_memory

     

    https://en.wikipedia.org/wiki/Semiconductor_memory

    https://en.wikipedia.org/wiki/Memory_cell_(computing)

     

    https://en.wikipedia.org/wiki/Magnetic-core_memory

    https://en.wikipedia.org/wiki/Williams_tube


    https://en.wikipedia.org/wiki/Delay-line_memory

    https://en.wikipedia.org/wiki/Speed_of_sound

    https://en.wikipedia.org/wiki/Static_electricity

    https://en.wikipedia.org/wiki/Cathode-ray_tube

    https://en.wikipedia.org/wiki/Electric_discharge

    https://en.wikipedia.org/wiki/Phosphorescence


    https://en.wikipedia.org/wiki/Persistent_luminescence

    https://en.wikipedia.org/wiki/Forbidden_mechanism

    https://en.wikipedia.org/wiki/Radioactive_decay#History

    https://en.wikipedia.org/wiki/Phosphorescence

    https://en.wikipedia.org/wiki/Vacancy_defect

    https://en.wikipedia.org/wiki/Crystallographic_defect

    https://en.wikipedia.org/wiki/Crystallographic_defect#Point_defects

    https://en.wikipedia.org/wiki/Interstitial_defect

    https://en.wikipedia.org/wiki/Interstitial_site

    https://en.wikipedia.org/wiki/Sphere_packing


    Interstitial sites in simple cubic and close-packed structures

    In crystallography, interstitial sites, holes or voids are the empty space that exists between the packing of atoms (spheres) in the crystal structure.[1]

    The holes are easy to see if you try to pack circles together; no matter how close you get them or how you arrange them, you will have empty space in between. The same is true in a unit cell; no matter how the atoms are arranged, there will be interstitial sites present between the atoms. These sites or holes can be filled with other atoms (interstitial defect). The picture with packed circles is only a 2D representation. In a crystal lattice, the atoms (spheres) would be packed in a 3D arrangement. This results in different shaped interstitial sites depending on the arrangement of the atoms in the lattice.

    https://en.wikipedia.org/wiki/Interstitial_site

    Body-centered cubic (BCC)

    A body-centered cubic unit cell has six octahedral voids located at the center of each face of the unit cell, and twelve further ones located at the midpoint of each edge of the same cell, for a total of six net octahedral voids. Additionally, there are 24 tetrahedral voids located in a square spacing around each octahedral void, for a total of twelve net tetrahedral voids. These tetrahedral voids are not local maxima and are not technically voids, but they do occasionally appear in multi-atom unit cells. 

    https://en.wikipedia.org/wiki/Interstitial_site

    https://en.wikipedia.org/wiki/Cubic_crystal_system#Multi-element_structures

    https://en.wikipedia.org/wiki/Phosphorescence

    https://en.wikipedia.org/wiki/Cubic_crystal_system#Zincblende_structure

    https://en.wikipedia.org/wiki/Fluorite_structure

    https://en.wikipedia.org/wiki/Cubic_crystal_system#Rock-salt_structure

    https://en.wikipedia.org/wiki/Cation-anion_radius_ratio

    https://en.wikipedia.org/wiki/Chemical_stability

    https://en.wikipedia.org/wiki/Hydride

    https://en.wikipedia.org/wiki/Coordination_number

     

    In crystallography, the cubic (or isometric) crystal system is a crystal system where the unit cell is in the shape of a cube. This is one of the most common and simplest shapes found in crystals and minerals.

    There are three main varieties of these crystals:

    • Primitive cubic (abbreviated cP and alternatively called simple cubic)
    • Body-centered cubic (abbreviated cI or bcc)
    • Face-centered cubic (abbreviated cF or fcc)

    Note: the term fcc is often used in synonym for the cubic close-packed or ccp structure occurring in metals. However, fcc stands for a face-centered-cubic Bravais lattice, which is not necessarily close-packed when a motif is set onto the lattice points. E.g. the diamond and the zincblende lattices are fcc but not close-packed. Each is subdivided into other variants listed below. Although the unit cells in these crystals are conventionally taken to be cubes, the primitive unit cells often are not.

    Bravais lattices

    The three Bravais lattices in the cubic crystal system are:

    Bravais lattice Primitive
    cubic
    Body-centered
    cubic
    Face-centered
    cubic
    Pearson symbol cP cI cF
    Unit cell Cubic.svg Cubic-body-centered.svg Cubic-face-centered.svg

    The primitive cubic lattice (cP) consists of one lattice point on each corner of the cube; this means each simple cubic unit cell has in total one lattice point. Each atom at a lattice point is then shared equally between eight adjacent cubes, and the unit cell therefore contains in total one atom (18 × 8).[1]

    The body-centered cubic lattice (cI) has one lattice point in the center of the unit cell in addition to the eight corner points. It has a net total of two lattice points per unit cell (18 × 8 + 1).[1]

    The face-centered cubic lattice (cF) has lattice points on the faces of the cube, that each gives exactly one half contribution, in addition to the corner lattice points, giving a total of 4 lattice points per unit cell (18 × 8 from the corners plus 12 × 6 from the faces).

    The face-centered cubic lattice is closely related to the hexagonal close packed (hcp) system, where two systems differ only in the relative placements of their hexagonal layers. The [111] plane of a face-centered cubic lattice is a hexagonal grid.

    Attempting to create a base-centered cubic lattice (i.e., putting an extra lattice point in the center of each horizontal face) results in a simple tetragonal Bravais lattice.

    Coordination number (CN) is the number of nearest neighbors of a central atom in the structure.[1] Each sphere in a cP lattice has coordination number 6, in a cI lattice 8, and in a cF lattice 12.

    Atomic packing factor (APF) is the fraction of volume that is occupied by atoms. The cP lattice has an APF of about 0.524 , the cI lattice an APF of about 0.680, and the cF lattice an APF of about 0.740.

    Crystal classes

    The isometric crystal system class names, point groups (in Schönflies notation, Hermann–Mauguin notation, orbifold, and Coxeter notation), type, examples, international tables for crystallography space group number,[2] and space groups are listed in the table below. There are a total 36 cubic space groups.

    No. Point group Type Example Space groups
    Name[3] Schön. Intl Orb. Cox. Primitive Face-centered Body-centered
    195–197 Tetartoidal T 23 332 [3,3]+ enantiomorphic Ullmannite, Sodium chlorate P23 F23 I23
    198–199 P213
    I213
    200–204 Diploidal Th 2/m3
    (m3)
    3*2 [3+,4] centrosymmetric Pyrite Pm3, Pn3 Fm3, Fd3 I3
    205–206 Pa3
    Ia3
    207–211 Gyroidal O 432 432 [3,4]+ enantiomorphic Petzite P432, P4232 F432, F4132 I432
    212–214 P4332, P4132
    I4132
    215–217 Hextetrahedral Td 43m *332 [3,3]
    Sphalerite P43m F43m I43m
    218–220 P43n F43c I43d
    221–230 Hexoctahedral Oh 4/m32/m
    (m3m)
    *432 [3,4] centrosymmetric Galena, Halite Pm3m, Pn3n, Pm3n, Pn3m Fm3m, Fm3c, Fd3m, Fd3c Im3m, Ia3d

    Other terms for hexoctahedral are: normal class, holohedral, ditesseral central class, galena type.

    Single element structures

    Visualisation of a diamond cubic unit cell: 1. Components of a unit cell, 2. One unit cell, 3. A lattice of 3 x 3 x 3 unit cells

    As a rule, since atoms in a solid attract each other, the more tightly packed arrangements of atoms tend to be more common. (Loosely packed arrangements do occur, though, for example if the orbital hybridization demands certain bond angles.) Accordingly, the primitive cubic structure, with especially low atomic packing factor, is rare in nature, but is found in polonium.[4][5] The bcc and fcc, with their higher densities, are both quite common in nature. Examples of bcc include iron, chromium, tungsten, and niobium. Examples of fcc include aluminium, copper, gold and silver.

    Another important cubic crystal structure is the diamond cubic structure, which can appear in carbon, silicon, germanium, and tin. Unlike fcc and bcc, this structure is not a lattice, since it contains multiple atoms in its primitive cell. Other cubic elemental structures include the A15 structure found in tungsten, and the extremely complicated structure of manganese.

    Multi-element structures

    Compounds that consist of more than one element (e.g. binary compounds) often have crystal structures based on the cubic crystal system. Some of the more common ones are listed here. These structures can be viewed as two or more interpenetrating sublattices where each sublattice occupies the interstitial sites of the others.

    Caesium chloride structure

    A caesium chloride unit cell. The two colors of spheres represent the two types of atoms.

    One structure is the "interpenetrating primitive cubic" structure, also called a "caesium chloride" structure. This structure is often confused for a body-centered cubic structure, because the arrangement of atoms is the same. The true structure is shown in the graphic showing two individual primitive cubic structures that are superimposed within each other with the corner of one structure in the center of the cube of the other structure.  It helps to convince yourself that it is not body-centered cubic because there is no translational symmetry along the ½, ½, ½, plane, the chloride would be translated into a cesium, not another chloride.[6]

    This graphic shows the interlocking simple cubic lattices of cesium and chlorine. You can see them separately and as they are interlocked in what looks like a body-centered cubic arrangement

    It works the same way for the NaCl structure described in the next section.  If you take out the Cl atoms, the leftover Na atoms still form an FCC structure, not a simple cubic structure.

    In the unit cell of CsCl, each ion is at the center of a cube of ions of the opposite kind, so the coordination number is eight. The central cation is coordinated to 8 anions on the corners of a cube as shown, and similarly, the central anion is coordinated to 8 cations on the corners of a cube. Alternately, one could view this lattice as a simple cubic structure with a secondary atom in its cubic void.

    In addition to caesium chloride itself, the structure also appears in certain other alkali halides when prepared at low temperatures or high pressures.[7] Generally, this structure is more likely to be formed from two elements whose ions are of roughly the same size (for example, ionic radius of Cs+ = 167 pm, and Cl = 181 pm).

    The space group of the caesium chloride (CsCl) structure is called Pm3m (in Hermann–Mauguin notation), or "221" (in the International Tables for Crystallography). The Strukturbericht designation is "B2".[8]

    There are nearly a hundred rare earth intermetallic compounds that crystalize in the CsCl structure, including many binary compounds of rare earths with magnesium,[9] and with elements in groups 11, 12,[10][11] and 13. Other compounds showing caesium chloride like structure are CsBr, CsI, high-temperature RbCl, AlCo, AgZn, BeCu, MgCe, RuAl and SrTl.[citation needed]

    Rock-salt structure

    The rock-salt crystal structure. Each atom has six nearest neighbours, with octahedral geometry.

    The space group of the rock-salt or halite (sodium chloride) structure is denoted as Fm3m (in Hermann–Mauguin notation), or "225" (in the International Tables for Crystallography). The Strukturbericht designation is "B1".[12]

    In the rock-salt structure, each of the two atom types forms a separate face-centered cubic lattice, with the two lattices interpenetrating so as to form a 3D checkerboard pattern. The rock-salt structure has octahedral coordination: Each atom's nearest neighbors consist of six atoms of the opposite type, positioned like the six vertices of a regular octahedron. In sodium chloride there is a 1:1 ratio of sodium to chlorine atoms.  The structure can also be described as an FCC lattice of sodium with chlorine occupying each octahedral void or vice versa.[6]

    Examples of compounds with this structure include sodium chloride itself, along with almost all other alkali halides, and "many divalent metal oxides, sulfides, selenides, and tellurides".[7] According to the radius ratio rule, this structure is more likely to be formed if the cation is somewhat smaller than the anion (a cation/anion radius ratio of 0.414 to 0.732).

    The interatomic distance (distance between cation and anion, or half the unit cell length a) in some rock-salt-structure crystals are: 2.3 Å (2.3 × 10−10 m) for NaF,[13] 2.8 Å for NaCl,[14] and 3.2 Å for SnTe.[15] Most of the alkali metal hydrides and halides have the rock salt structure, though a few have the caesium chloride structure instead.

    Alkali metal hydrides and halides with the rock salt structure
    Alkaline earth metal chalcogenides with the rock salt structure
    Rare-earth[21] and actinoid pnictides with the rock salt structure
    Rare-earth and actinoid chalcogenides with the rock salt structure
    Transition metal carbides and nitrides with the rock salt structure

    Many transition metal monoxides also have the rock salt structure (TiO, VO, CrO, MnO, FeO, CoO, NiO, CdO). The early actinoid monocarbides also have this structure (ThC, PaC, UC, NpC, PuC).[37] Other compounds showing rock salt like structure are TiB,[48] ZrB,[49] PbS, PbSe, PbTe, SnTe, AgF, AgCl, and AgBr.

    Fluorite structure

    Much like the rock salt structure, the fluorite structure (AB2) is also an Fm3m structure but has 1:2 ratio of ions. The anti-fluorite structure is nearly identical, except the positions of the anions and cations are switched in the structure. They are designated Wyckoff positions 4a and 8c whereas the rock-salt structure positions are 4a and 4b.[50][51]

    Zincblende structure

    A zincblende unit cell

    The space group of the Zincblende structure is called F43m (in Hermann–Mauguin notation), or 216.[52][53] The Strukturbericht designation is "B3".[54]

    The Zincblende structure (also written "zinc blende") is named after the mineral zincblende (sphalerite), one form of zinc sulfide (β-ZnS). As in the rock-salt structure, the two atom types form two interpenetrating face-centered cubic lattices. However, it differs from rock-salt structure in how the two lattices are positioned relative to one another. The zincblende structure has tetrahedral coordination: Each atom's nearest neighbors consist of four atoms of the opposite type, positioned like the four vertices of a regular tetrahedron. In zinc sulfide the ratio of zinc to sulfur is 1:1.[6] Altogether, the arrangement of atoms in zincblende structure is the same as diamond cubic structure, but with alternating types of atoms at the different lattice sites. The structure can also be described as an FCC lattice of zinc with sulfur atoms occupying half of the tetrahedral voids or vice versa.[6]

    Examples of compounds with this structure include zincblende itself, lead(II) nitrate, many compound semiconductors (such as gallium arsenide and cadmium telluride), and a wide array of other binary compounds.[citation needed] The boron group pnictogenides usually have a zincblende structure, though the nitrides are more common in the wurtzite structure, and their zincblende forms are less well known polymorphs.[55][56]

    Copper halides with the zincblende structure

    Fluorides Chorlorides Bromides Iodides
    Copper Copper(I) fluoride Copper(I) chloride Copper(I) bromide Copper(I) iodide
    Beryllium and Group 12 chalcogenides with the zincblende structure

    Sulfides Selenides Tellurides Polonides
    Beryllium Beryllium sulfide Beryllium selenide Beryllium telluride Beryllium polonide[57][58]
    Zinc Zinc sulfide Zinc selenide Zinc telluride Zinc polonide
    Cadmium Cadmium sulfide Cadmium selenide Cadmium telluride Cadmium polonide
    Mercury Mercury sulfide Mercury selenide Mercury telluride

    This group is also known as the II-VI family of compounds, most of which can be made in both the zincblende (cubic) or wurtzite (hexagonal) form.

    Group 13 pnictogenides with the zincblende structure

    Nitrides Phosphides Arsenides Antimonides
    Boron Boron nitride* Boron phosphide Boron arsenide Boron antimonide
    Aluminium Aluminium nitride* Aluminium phosphide Aluminium arsenide Aluminium antimonide
    Gallium Gallium nitride* Gallium phosphide Gallium arsenide Gallium antimonide
    Indium Indium nitride* Indium phosphide Indium arsenide Indium antimonide

    This group is also known as the III-V family of compounds.

    The structure of the Heusler compounds with formula X2YZ (e. g., Co2MnSi).

    Heusler structure

    The Heusler structure, based on the structure of Cu2MnAl, is a common structure for ternary compounds involving transition metals. It has the space group Fm3m (No. 225), and the Strukturbericht designation is L21. Together with the closely related half-Heusler and inverse-Huesler compounds, there are hundreds of examples.

    Iron monosilicide structure

    Diagram of the iron monosilicide structure.

    The space group of the iron monosilicide structure is P213 (No. 198), and the Strukturbericht designation is B20. This is a chiral structure, and is sometimes associated with helimagnetic properties. There are four atoms of each element for a total of eight atoms in the unit cell.

    Examples occur among the transition metal silicides and germanides, as well as a few other compounds such as gallium palladide.

    Transition metal silicides and germanides with the FeSi structure

    Silicides Germanides
    Manganese Manganese monosilicide Manganese germanide
    Iron Iron monosilicide Iron germanide
    Cobalt Cobalt monosilicide Cobalt germanide
    Chromium Chromium(IV) silicide Chromium(IV) germanide

    Weaire–Phelan structure

    Weaire–Phelan structure

    A Weaire–Phelan structure has Pm3n (223) symmetry.

    It has three orientations of stacked tetradecahedrons with pyritohedral cells in the gaps. It is found as a crystal structure in chemistry where it is usually known as a "type I clathrate structure". Gas hydrates formed by methane, propane, and carbon dioxide at low temperatures have a structure in which water molecules lie at the nodes of the Weaire–Phelan structure and are hydrogen bonded together, and the larger gas molecules are trapped in the polyhedral cages.

    See also

    References


  • De Wolff, P. M.; Belov, N. V.; Bertaut, E. F.; Buerger, M. J.; Donnay, J. D. H.; Fischer, W.; Hahn, Th.; Koptsik, V. A.; MacKay, A. L.; Wondratschek, H.; Wilson, A. J. C.; Abrahams, S. C. (1985). "Nomenclature for crystal families, Bravais-lattice types and arithmetic classes. Report of the International Union of Crystallography Ad-Hoc Committee on the Nomenclature of Symmetry". Acta Crystallographica Section A. 41 (3): 278. doi:10.1107/S0108767385000587.

  • Prince, E., ed. (2006). International Tables for Crystallography. doi:10.1107/97809553602060000001. ISBN 978-1-4020-4969-9. S2CID 146060934.

  • Crystallography and Minerals Arranged by Crystal Form, Webmineral

  • Greenwood, Norman N.; Earnshaw, Alan (1997). Chemistry of the Elements (2nd ed.). Butterworth-Heinemann. ISBN 978-0-08-037941-8.

  • The original discovery was in J. Chem. Phys. 14, 569 (1946).

  • "Cubic Lattices and Close Packing". 3 October 2013. Archived from the original on 2020-11-01.

  • Seitz, Modern Theory of Solids (1940), p.49

  • The CsCl (B2) Structure Archived 2008-09-15 at the Wayback Machine

  • Saccone, A.; Delfino, S.; Macció, D.; Ferro, R. (1993). "Magnesium-rare earth phase diagrams: Experimental investigation of the Ho-Mg system". Journal of Phase Equilibria. 14 (3): 280–287. doi:10.1007/bf02668225. S2CID 95011597.

  • Kanematu, K; T. Alfieri, G.; Banks, E. (1969). "Magnetic Studies of Rare Earth Zinc Compounds with CsCl Structure". Journal of the Physical Society of Japan. 26 (2): 244–248. Bibcode:1969JPSJ...26..244K. doi:10.1143/jpsj.26.244.

  • Buschow, K. H. J. (1974). "Magnetic properties of CsCl‐type rare‐earth cadmium compounds". The Journal of Chemical Physics. 61 (11): 4666–4670. Bibcode:1974JChPh..61.4666B. doi:10.1063/1.1681788.

  • The NaCl (B1) Structure Archived 2008-10-19 at the Wayback Machine

  • Sundquist, J. J.; Lin, C. C. (1981). "Electronic structure of the F centre in a sodium fluoride crystal". Journal of Physics C: Solid State Physics. 14 (32): 4797–4805. Bibcode:1981JPhC...14.4797S. doi:10.1088/0022-3719/14/32/016.

  • Abrahams, S. C.; Bernstein, J. L. (1965). "Accuracy of an automatic diffractometer. Measurement of the sodium chloride structure factors". Acta Crystallogr. 18 (5): 926–932. doi:10.1107/S0365110X65002244.

  • Kao, W.; Peretti, E. (1970). "The ternary subsystem Sn4As3-SnAs-SnTe". Journal of the Less Common Metals. 22: 39–50. doi:10.1016/0022-5088(70)90174-8.

  • J. Aigueperse, P. Mollard, D. Devilliers, M. Chemla, R. Faron, R. Romano, J. P. Cuer, "Fluorine Compounds, Inorganic" (section 4) in Ullmann’s Encyclopedia of Industrial Chemistry, Wiley-VCH, Weinheim, 2005. doi:10.1002/14356007.a11_307.

  • Broch, Einar (1927-06-01). "Präzisionsbestimmungen der Gitterkonstanten der Verbindungen MgO, MgS, MgSe, MnO und MnSe". Zeitschrift für Physikalische Chemie (in German). 127U (1): 446–454. doi:10.1515/zpch-1927-12724. S2CID 100227546.

  • Mir, Showkat H.; Jha, Prakash C.; Dabhi, Shweta; Jha, Prafulla K. (2016). "Ab initio study of phase stability, lattice dynamics and thermodynamic properties of magnesium chalcogenides". Materials Chemistry and Physics. 175: 54–61. doi:10.1016/j.matchemphys.2016.02.066.

  • Louail, L.; Haddadi, K.; Maouche, D.; Ali Sahraoui, F.; Hachemi, A. (2008). "Electronic band structure of calcium selenide under pressure". Physica B: Condensed Matter. 403 (18): 3022–3026. Bibcode:2008PhyB..403.3022L. doi:10.1016/j.physb.2008.03.009.

  • Brown, S.A.; Brown, P.L. (2019). The Aqueous Chemistry of Polonium and the Practical Application of its Thermochemistry. Elsevier Science. p. 25. ISBN 978-0-12-819309-9.

  • Hulliger, F. (1979). "Chapter 33 Rare earth pnictides". Handbook on the Physics and Chemistry of Rare Earths. Vol. 4. Elsevier. pp. 153–236. doi:10.1016/s0168-1273(79)04006-x. ISBN 9780444852168.

  • Gschneidner, K. A.; Calderwood, F. W. (1986). "The As−Sc (Arsenic-Scandium) system". Bulletin of Alloy Phase Diagrams. 7 (4): 348–349. doi:10.1007/bf02873011.

  • Hayashi, J; Shirotani, I; Hirano, K; Ishimatsu, N; Shimomura, O; Kikegawa, T (2003). "Structural phase transition of ScSb and YSb with a NaCl-type structure at high pressures". Solid State Communications. 125 (10): 543–546. Bibcode:2003SSCom.125..543H. doi:10.1016/s0038-1098(02)00889-x.

  • Horovitz, C.T. (2012). Scandium Its Occurrence, Chemistry Physics, Metallurgy, Biology and Technology. Elsevier Science. p. 273. ISBN 978-0-323-14451-3.

  • Ono, S.; Despault, J.G.; Calvert, L.D.; Taylor, J.B. (1970). "Rare-earth arsenides". Journal of the Less Common Metals. 22 (1): 51–59. doi:10.1016/0022-5088(70)90175-x.

  • Schmidt, F.A.; McMasters, O.D.; Lichtenberg, R.R. (1969). "The yttrium-bismuth alloy system". Journal of the Less Common Metals. 18 (3): 215–220. doi:10.1016/0022-5088(69)90159-3.

  • Natali, F.; Ruck, B.J.; Plank, N.O.V.; Trodahl, H.J.; Granville, S.; Meyer, C.; Lambrecht, W.R.L. (2013). "Rare-earth mononitrides". Progress in Materials Science. 58 (8): 1316–1360. arXiv:1208.2410. doi:10.1016/j.pmatsci.2013.06.002. S2CID 118566136.

  • Ono, S.; Nomura, K.; Hayakawa, H. (1974). "Syntheses of new rare-earth phosphides". Journal of the Less Common Metals. 38 (2–3): 119–130. doi:10.1016/0022-5088(74)90055-1.

  • Yoshihara, K.; Taylor, J.B.; Calvert, L.D.; Despault, J.G. (1975). "Rare-earth bismuthides". Journal of the Less Common Metals. 41 (2): 329–337. doi:10.1016/0022-5088(75)90038-7.

  • Hayashi, J.; Shirotani, I.; Tanaka, Y.; Adachi, T.; Shimomura, O.; Kikegawa, T. (2000). "Phase transitions of LnSb (Ln=lanthanide) with NaCl-type structure at high pressures". Solid State Communications. 114 (11): 561–565. Bibcode:2000SSCom.114..561H. doi:10.1016/s0038-1098(00)00113-7.

  • Gschneidner, K. A.; Calderwood, F. W. (1986). "The As−Eu (Arsenic-Europium) system". Bulletin of Alloy Phase Diagrams. 7 (3): 279–283. doi:10.1007/bf02869009.

  • Taylor, J. B.; Calvert, L. D.; Wang, Y. (1979). "Powder data for some new europium antimonides and bismuthides". Journal of Applied Crystallography. 12 (2): 249–251. doi:10.1107/s0021889879012309.

  • Okamoto, H. (1999). "Bi-Yb (bismuth-ytterbium)". Journal of Phase Equilibria. 20 (4): 453. doi:10.1361/105497199770335640.

  • Duan, Xu; Wu, Fan; Chen, Jia; Zhang, Peiran; Liu, Yang; Yuan, Huiqiu; Cao, Chao (2018). "Tunable electronic structure and topological properties of LnPn (Ln=Ce, Pr, Sm, Gd, Yb; Pn=Sb, Bi)". Communications Physics. 1 (1): 71. Bibcode:2018CmPhy...1...71D. doi:10.1038/s42005-018-0074-8.

  • Kruger, O.L.; Moser, J.B. (1967). "Lattice constants and melting points of actinide-group IVA-VIA compounds with NaCl-type structures". Journal of Physics and Chemistry of Solids. 28 (11): 2321–2325. Bibcode:1967JPCS...28.2321K. doi:10.1016/0022-3697(67)90257-0.

  • Vogt, O.; Mattenberger, K. (1995). "The magnetism of localized or nearly localized 4f and 5f shells". Journal of Alloys and Compounds. 223 (2): 226–236. doi:10.1016/0925-8388(94)09005-x.

  • Benedict, U.; Holzapfel, W.B. (1993). "Chapter 113 High-pressure studies — Structural aspects". Lanthanides/Actinides: Physics I. Handbook on the Physics and Chemistry of Rare Earths. Vol. 17. Elsevier. pp. 245–300. doi:10.1016/s0168-1273(05)80030-3. ISBN 9780444815026.

  • Leger, J.M.; Yacoubi, N.; Loriers, J. (1981). "Synthesis of rare earth monoxides". Journal of Solid State Chemistry. 36 (3): 261–270. Bibcode:1981JSSCh..36..261L. doi:10.1016/0022-4596(81)90436-9.

  • Roedhammer, P.; Reichardt, W.; Holtzberg, F. (1978). "Soft-Mode Behavior in the Phonon Dispersion of YS". Physical Review Letters. 40 (7): 465–468. Bibcode:1978PhRvL..40..465R. doi:10.1103/physrevlett.40.465.

  • Didchenko, R.; Gortsema, F.P. (1963). "Some electric and magnetic properties of rare earth monosulfides and nitrides". Journal of Physics and Chemistry of Solids. 24 (7): 863–870. Bibcode:1963JPCS...24..863D. doi:10.1016/0022-3697(63)90062-3.

  • Smolensky, G. A.; Adamjan, V. E.; Loginov, G. M. (1968). "Antiferromagnetic Properties of Light Rare Earth Monochalcogenides". Journal of Applied Physics. 39 (2): 786–790. Bibcode:1968JAP....39..786S. doi:10.1063/1.2163619.

  • Kershner, C.J.; DeSando, R.J.; Heidelberg, R.F.; Steinmeyer, R.H. (1966). "Rare earth polonides". Journal of Inorganic and Nuclear Chemistry. 28 (8): 1581–1588. doi:10.1016/0022-1902(66)80054-4.

  • Wachter, P. (1972). "The optical electrical and magnetic properties of the europium chalcogenides and the rare earth pnictides". C R C Critical Reviews in Solid State Sciences. 3 (2): 189–241. doi:10.1080/10408437208244865.

  • Meyer, G (1991). Synthesis of Lanthanide and Actinide Compounds. Dordrecht: Springer Netherlands. p. 237. ISBN 978-94-011-3758-4. OCLC 840310000.

  • D'Eye, R. W. M.; Sellman, P. G. (1954). "The thorium–tellurium system". J. Chem. Soc.: 3760–3766. doi:10.1039/jr9540003760.

  • Friedrich, Alexandra; Winkler, Björn; Juarez-Arellano, Erick A.; Bayarjargal, Lkhamsuren (2011). "Synthesis of Binary Transition Metal Nitrides, Carbides and Borides from the Elements in the Laser-Heated Diamond Anvil Cell and Their Structure-Property Relations". Materials. 4 (10): 1648–1692. Bibcode:2011Mate....4.1648F. doi:10.3390/ma4101648. PMC 5448873. PMID 28824101.

  • Venkatraman, M.; Neumann, J. P. (1990). "The C-Cr (Carbon-Chromium) System". Bulletin of Alloy Phase Diagrams. 11 (2): 152–159. doi:10.1007/bf02841701.

  • Murray, J. L.; Liao, P. K.; Spear, K. E. (1986). "The B−Ti (Boron-Titanium) system". Bulletin of Alloy Phase Diagrams. 7 (6): 550–555. doi:10.1007/bf02869864.

  • Glaser, Frank W.; Post, Benjamin (1953). "System Zirconium-Boron". JOM. 5 (9): 1117–1118. Bibcode:1953JOM.....5i1117G. doi:10.1007/bf03397597.

  • "Fluorite". aflow.org. Retrieved 2020-05-22.

  • "Rock Salt". aflow.org. Retrieved 2020-05-22.

  • Kantorovich, L. (2004). Quantum Theory of the Solid State. Springer. p. 32. ISBN 1-4020-2153-4.

  • Birkbeck College, University of London

  • The Zincblende (B3) Structure. Naval Research Laboratory, U.S. Archived October 19, 2008, at the Wayback Machine

  • Wang, L.D.; Kwok, H.S. (2000). "Cubic aluminum nitride and gallium nitride thin films prepared by pulsed laser deposition". Applied Surface Science. 154–155 (1–4): 439–443. Bibcode:2000ApSS..154..439W. doi:10.1016/s0169-4332(99)00372-4.

  • Oseki, Masaaki; Okubo, Kana; Kobayashi, Atsushi; Ohta, Jitsuo; Fujioka, Hiroshi (2014). "Field-effect transistors based on cubic indium nitride". Scientific Reports. 4 (1): 3951. Bibcode:2014NatSR...4E3951O. doi:10.1038/srep03951. PMC 3912472. PMID 24492240.

  • Greenwood, Norman N.; Earnshaw, Alan (1984). Chemistry of the Elements. Oxford: Pergamon Press. p. 899. ISBN 978-0-08-022057-4..

    1. Moyer, Harvey V. (1956). "Chemical Properties of Polonium". In Moyer, Harvey V. (ed.). Polonium (Report). Oak Ridge, Tenn.: United States Atomic Energy Commission. pp. 33–96. doi:10.2172/4367751. TID-5221..

    Further reading

    • Hurlbut, Cornelius S.; Klein, Cornelis, 1985, Manual of Mineralogy, 20th ed., Wiley, ISBN 0-471-80580-7

    External links

     

    A rock containing three crystals of pyrite (FeS2). The crystal structure of pyrite is primitive cubic, and this is reflected in the cubic symmetry of its natural crystal facets.

    https://en.wikipedia.org/wiki/Cubic_crystal_system#Rock-salt_structure

    https://en.wikipedia.org/wiki/Close-packing_of_equal_spheres

    https://en.wikipedia.org/wiki/Unit_cell#Primitive_cell


    https://en.wikipedia.org/wiki/Unit_cell#Primitive_cell

    https://en.wikipedia.org/wiki/Parallelepiped

    https://en.wikipedia.org/wiki/Bravais_lattice

    https://en.wikipedia.org/wiki/Voronoi_diagram

    https://en.wikipedia.org/wiki/Reciprocal_lattice

    https://en.wikipedia.org/wiki/Hexagonal_crystal_family#Multi-element_structures



    Multi-element structures

    Compounds that consist of more than one element (e.g. binary compounds) often have crystal structures based on the hexagonal crystal family. Some of the more common ones are listed here. These structures can be viewed as two or more interpenetrating sublattices where each sublattice occupies the interstitial sites of the others.

    Wurtzite structure

    Wurtzite unit cell as described by symmetry operators of the space group.[12]
    Another representation of the wurtzite unit cell[citation needed]
    Another representation of the wurtzite structure[citation needed]

    The wurtzite crystal structure is referred to by the Strukturbericht designation B4 and the Pearson symbol hP4. The corresponding space group is No. 186 (in International Union of Crystallography classification) or P63mc (in Hermann–Mauguin notation). The Hermann-Mauguin symbols in P63mc can be read as follows:[13]

    • 63.. : a six fold screw rotation around the c-axis
    • .m. : a mirror plane with normal {100}
    • ..c : glide plane in the c-directions with normal {120}.

    Among the compounds that can take the wurtzite structure are wurtzite itself (ZnS with up to 8% iron instead of zinc), silver iodide (AgI), zinc oxide (ZnO), cadmium sulfide (CdS), cadmium selenide (CdSe), silicon carbide (α-SiC), gallium nitride (GaN), aluminium nitride (AlN), boron nitride (w-BN) and other semiconductors.[14] In most of these compounds, wurtzite is not the favored form of the bulk crystal, but the structure can be favored in some nanocrystal forms of the material.

    In materials with more than one crystal structure, the prefix "w-" is sometimes added to the empirical formula to denote the wurtzite crystal structure, as in w-BN.

    Each of the two individual atom types forms a sublattice which is hexagonal close-packed (HCP-type). When viewed all together, the atomic positions are the same as in lonsdaleite (hexagonal diamond). Each atom is tetrahedrally coordinated. The structure can also be described as an HCP lattice of zinc with sulfur atoms occupying half of the tetrahedral voids or vice versa.

    The wurtzite structure is non-centrosymmetric (i.e., lacks inversion symmetry). Due to this, wurtzite crystals can (and generally do) have properties such as piezoelectricity and pyroelectricity, which centrosymmetric crystals lack.[citation needed]

    Nickel arsenide structure

    The nickel arsenide structure consists of two interpenetrating sublattices: a primitive hexagonal nickel sublattice and a hexagonal close-packed arsenic sublattice. Each nickel atom is octahedrally coordinated to six arsenic atoms, while each arsenic atom is trigonal prismatically coordinated to six nickel atoms.[15] The structure can also be described as an HCP lattice of arsenic with nickel occupying each octahedral void.

    Compounds adopting the NiAs structure are generally the chalcogenides, arsenides, antimonides and bismuthides of transition metals.[citation needed]

    The unit cell of nickeline

    The following are the members of the nickeline group:[16]

    • Achavalite: FeSe
    • Breithauptite: NiSb
    • Freboldite: CoSe
    • Kotulskite: Pd(Te,Bi)
    • Langistite: (Co,Ni)As
    • Nickeline: NiAs
    • Sobolevskite: Pd(Bi,Te)
    • Sudburyite: (Pd,Ni)Sb

    In two dimensions

    There is only one hexagonal Bravais lattice in two dimensions: the hexagonal lattice.

    Bravais lattice Hexagonal
    Pearson symbol hp
    Unit cell 2d hp.svg

    See also

    References


  • Hahn, Theo, ed. (2005). International tables for crystallography (5th ed.). Dordrecht, Netherlands: Published for the International Union of Crystallography by Springer. ISBN 978-0-7923-6590-7.

  • Dana, James Dwight; Hurlbut, Cornelius Searle (1959). Dana's Manual of Mineralogy (17th ed.). New York: Chapman Hall. pp. 78–89.

  • Edward Prince (2004). Mathematical Techniques in Crystallography and Materials Science. Springer Science & Business Media. p. 41.

  • "Medium-Resolution Space Group Diagrams and Tables". img.chem.ucl.ac.uk.

  • Ashcroft, Neil W.; Mermin, N. David (1976). Solid State Physics (1st ed.). p. 119. ISBN 0-03-083993-9.

  • Pough, Frederick H.; Peterson, Roger Tory (1998). A Field Guide to Rocks and Minerals. Houghton Mifflin Harcourt. p. 62. ISBN 0-395-91096-X.

  • Hurlbut, Cornelius S.; Klein, Cornelis (1985). Manual of Mineralogy (20th ed.). pp. 78–89. ISBN 0-471-80580-7.

  • "Crystallography and Minerals Arranged by Crystal Form". Webmineral.

  • "Crystallography". Webmineral.com. Retrieved 2014-08-03.

  • "Minerals in the Hexagonal crystal system, Dihexagonal Pyramidal class (6mm)". Mindat.org. Retrieved 2014-08-03.

  • Jaswon, Maurice Aaron (1965-01-01). An introduction to mathematical crystallography. American Elsevier Pub. Co.

  • De Graef, Marc; McHenry, Michael E. (2012). Structure of Materials; An introduction to Crystallography, Diffraction and Symmetry (PDF). Cambridge University Press. p. 16.

  • Hitchcock, Peter B (1988). International tables for crystallography volume A.

  • Togo, Atsushi; Chaput, Laurent; Tanaka, Isao (2015-03-20). "Distributions of phonon lifetimes in Brillouin zones". Physical Review B. 91 (9): 094306. arXiv:1501.00691. doi:10.1103/PhysRevB.91.094306.

  • Inorganic Chemistry by Duward Shriver and Peter Atkins, 3rd Edition, W.H. Freeman and Company, 1999, pp.47,48.

  • External links

    https://en.wikipedia.org/wiki/Hexagonal_crystal_family#Multi-element_structures

    https://en.wikipedia.org/wiki/Amorphous_solid


    In crystallography, the triclinic (or anorthic) crystal system is one of the 7 crystal systems. A crystal system is described by three basis vectors. In the triclinic system, the crystal is described by vectors of unequal length, as in the orthorhombic system. In addition, the angles between these vectors must all be different and may not include 90°.

    The triclinic lattice is the least symmetric of the 14 three-dimensional Bravais lattices. It has (itself) the minimum symmetry all lattices have: points of inversion at each lattice point and at 7 more points for each lattice point: at the midpoints of the edges and the faces, and at the center points. It is the only lattice type that itself has no mirror planes.

    Crystal classes

    The triclinic crystal system class names, examples, Schönflies notation, Hermann-Mauguin notation, point groups, International Tables for Crystallography space group number,[1] orbifold, type, and space groups are listed in the table below. There are a total of 2 space groups.

    # Point group Type Example Space group
    Name[2] Schönflies Intl orbifold Coxeter
    1 Pedial C1 1 11 [ ]+ enantiomorphic polar Tantite P1
    2 Pinacoidal Ci (S2) 1 [2+,2+] centrosymmetric Wollastonite P1

    With each only one space group is associated. Pinacoidal is also known as triclinic normal. Pedial is also triclinic hemihedral.

    Mineral examples include plagioclase, microcline, rhodonite, turquoise, wollastonite and amblygonite, all in triclinic normal (1).

    See also

    References


  • Prince, E., ed. (2006). International Tables for Crystallography. International Union of Crystallography. doi:10.1107/97809553602060000001. ISBN 978-1-4020-4969-9.

    1. "The 32 crystal classes". Retrieved 2018-06-19.
    • Hurlbut, Cornelius S.; Klein, Cornelis, 1985, Manual of Mineralogy, 20th ed., pp. 64 – 65, ISBN 0-471-80580-7

    External links

    No comments:

    Post a Comment