moyo Module



Variables

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public, parameter :: MOYO_SETTING_HALL_NUMBER = 0

Hall number specified by the hall_number argument

integer(kind=c_int32_t), public, parameter :: MOYO_SETTING_SPGLIB = 1

The setting of the smallest Hall number

integer(kind=c_int32_t), public, parameter :: MOYO_SETTING_STANDARD = 2

Unique axis b, cell choice 1 for monoclinic, hexagonal axes for rhombohedral, and origin choice 2 for centrosymmetric space groups

integer(kind=c_int32_t), public, parameter :: MOYO_LAYER_SETTING_HALL_NUMBER = 0

Layer Hall number specified by the hall_number argument (1 - 116)

integer(kind=c_int32_t), public, parameter :: MOYO_LAYER_SETTING_SPGLIB = 1

The setting of the smallest layer Hall number for each layer group

integer(kind=c_int32_t), public, parameter :: MOYO_LAYER_SETTING_STANDARD = 2

BCS standard choice (origin choice 2 for layer groups 52, 62, 64)


Interfaces

interface

  • public function moyo_version() result(version) bind(c, name="moyo_version"))

    Version string of moyoc; convert with moyo_to_string. The returned string is statically allocated and must not be freed.

    Arguments

    None

    Return Value type(c_ptr)

interface

  • public function moyo_dataset_new(basis, positions, numbers, num_atoms, symprec, angle_tolerance, setting, hall_number, rotate_basis) result(dataset) bind(c, name="moyo_dataset_new"))

    Analyze the symmetry of the given cell; returns a pointer to a MoyoDataset or NULL on failure. Pass a negative angle_tolerance to use the default tolerance; hall_number is only used with MOYO_SETTING_HALL_NUMBER.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=c_double), intent(in) :: basis(3,3)
    real(kind=c_double), intent(in) :: positions(3,*)
    integer(kind=c_int32_t), intent(in) :: numbers(*)
    integer(kind=c_int32_t), value :: num_atoms
    real(kind=c_double), value :: symprec
    real(kind=c_double), value :: angle_tolerance
    integer(kind=c_int32_t), value :: setting
    integer(kind=c_int32_t), value :: hall_number
    logical(kind=c_bool), value :: rotate_basis

    Return Value type(c_ptr)

interface

  • public function moyo_layer_dataset_new(basis, positions, numbers, num_atoms, symprec, angle_tolerance, setting, hall_number, rotate_basis) result(dataset) bind(c, name="moyo_layer_dataset_new"))

    Analyze the layer-group symmetry of the given cell; returns a pointer to a MoyoLayerDataset or NULL on failure. The third basis vector must be the aperiodic stacking direction.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=c_double), intent(in) :: basis(3,3)
    real(kind=c_double), intent(in) :: positions(3,*)
    integer(kind=c_int32_t), intent(in) :: numbers(*)
    integer(kind=c_int32_t), value :: num_atoms
    real(kind=c_double), value :: symprec
    real(kind=c_double), value :: angle_tolerance
    integer(kind=c_int32_t), value :: setting
    integer(kind=c_int32_t), value :: hall_number
    logical(kind=c_bool), value :: rotate_basis

    Return Value type(c_ptr)

interface

  • public function moyo_collinear_magnetic_dataset_new(basis, positions, numbers, magnetic_moments, num_atoms, symprec, angle_tolerance, mag_symprec, is_axial, rotate_basis) result(dataset) bind(c, name="moyo_collinear_magnetic_dataset_new"))

    Analyze the magnetic symmetry of a collinear magnetic cell; returns a pointer to a MoyoCollinearMagneticDataset or NULL on failure. Pass a negative mag_symprec to reuse symprec.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=c_double), intent(in) :: basis(3,3)
    real(kind=c_double), intent(in) :: positions(3,*)
    integer(kind=c_int32_t), intent(in) :: numbers(*)
    real(kind=c_double), intent(in) :: magnetic_moments(*)
    integer(kind=c_int32_t), value :: num_atoms
    real(kind=c_double), value :: symprec
    real(kind=c_double), value :: angle_tolerance
    real(kind=c_double), value :: mag_symprec
    logical(kind=c_bool), value :: is_axial
    logical(kind=c_bool), value :: rotate_basis

    Return Value type(c_ptr)

interface

  • public function moyo_noncollinear_magnetic_dataset_new(basis, positions, numbers, magnetic_moments, num_atoms, symprec, angle_tolerance, mag_symprec, is_axial, rotate_basis) result(dataset) bind(c, name="moyo_noncollinear_magnetic_dataset_new"))

    Analyze the magnetic symmetry of a non-collinear magnetic cell (magnetic_moments(:, i) is the Cartesian moment of site i); returns a pointer to a MoyoNonCollinearMagneticDataset or NULL on failure.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=c_double), intent(in) :: basis(3,3)
    real(kind=c_double), intent(in) :: positions(3,*)
    integer(kind=c_int32_t), intent(in) :: numbers(*)
    real(kind=c_double), intent(in) :: magnetic_moments(3,*)
    integer(kind=c_int32_t), value :: num_atoms
    real(kind=c_double), value :: symprec
    real(kind=c_double), value :: angle_tolerance
    real(kind=c_double), value :: mag_symprec
    logical(kind=c_bool), value :: is_axial
    logical(kind=c_bool), value :: rotate_basis

    Return Value type(c_ptr)

interface

  • public function moyo_operations_from_number(number, setting, hall_number, primitive) result(operations) bind(c, name="moyo_operations_from_number"))

    Symmetry operations for a space-group ITA number (1 - 230); returns a pointer to MoyoOperations or NULL on invalid input.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int32_t), value :: number
    integer(kind=c_int32_t), value :: setting
    integer(kind=c_int32_t), value :: hall_number
    logical(kind=c_bool), value :: primitive

    Return Value type(c_ptr)

interface

  • public function moyo_operations_from_layer_number(number, setting, hall_number, primitive) result(operations) bind(c, name="moyo_operations_from_layer_number"))

    Symmetry operations for a layer-group number (1 - 80); returns a pointer to MoyoOperations or NULL on invalid input.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int32_t), value :: number
    integer(kind=c_int32_t), value :: setting
    integer(kind=c_int32_t), value :: hall_number
    logical(kind=c_bool), value :: primitive

    Return Value type(c_ptr)

interface

  • public function moyo_magnetic_operations_from_uni_number(uni_number, primitive) result(magnetic_operations) bind(c, name="moyo_magnetic_operations_from_uni_number"))

    Magnetic symmetry operations for a UNI number (1 - 1651); returns a pointer to MoyoMagneticOperations or NULL on invalid input.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int32_t), value :: uni_number
    logical(kind=c_bool), value :: primitive

    Return Value type(c_ptr)

interface

  • public function moyo_hall_symbol_entry_new(hall_number) result(entry) bind(c, name="moyo_hall_symbol_entry_new"))

    Hall symbol entry for hall_number (1 - 530); returns a pointer to MoyoHallSymbolEntry or NULL if out of range.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int32_t), value :: hall_number

    Return Value type(c_ptr)

interface

  • public function moyo_layer_hall_symbol_entry_new(hall_number) result(entry) bind(c, name="moyo_layer_hall_symbol_entry_new"))

    Layer Hall symbol entry for hall_number (1 - 116); returns a pointer to MoyoLayerHallSymbolEntry or NULL if out of range.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int32_t), value :: hall_number

    Return Value type(c_ptr)

interface

  • public function moyo_space_group_type_new(number) result(space_group_type) bind(c, name="moyo_space_group_type_new"))

    Space-group type information for ITA number (1 - 230); returns a pointer to MoyoSpaceGroupType or NULL if out of range.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int32_t), value :: number

    Return Value type(c_ptr)

interface

  • public function moyo_layer_group_type_new(number) result(layer_group_type) bind(c, name="moyo_layer_group_type_new"))

    Layer-group type information for layer-group number (1 - 80); returns a pointer to MoyoLayerGroupType or NULL if out of range.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int32_t), value :: number

    Return Value type(c_ptr)

interface

  • public function moyo_magnetic_space_group_type_new(uni_number) result(magnetic_space_group_type) bind(c, name="moyo_magnetic_space_group_type_new"))

    Magnetic space-group type information for uni_number (1 - 1651); returns a pointer to MoyoMagneticSpaceGroupType or NULL if out of range.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int32_t), value :: uni_number

    Return Value type(c_ptr)

interface

  • public function moyo_point_group_new(prim_rotations, num_operations, basis) result(point_group) bind(c, name="moyo_point_group_new"))

    Identify the point group of num_operations primitive rotations; returns a pointer to MoyoPointGroup or NULL on failure. prim_rotations points to the rotation matrices (e.g. ops%rotations or c_loc of an integer(c_int32_t) array whose (:, :, k) slices are the transposed matrices). Pass c_null_ptr as basis to assume an identity basis, or c_loc of a real(c_double) :: basis(3, 3) whose columns are the basis vectors.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: prim_rotations
    integer(kind=c_int32_t), value :: num_operations
    type(c_ptr), value :: basis

    Return Value type(c_ptr)

interface

  • public function moyo_space_group_new(prim_rotations, prim_translations, num_operations, basis, setting, hall_number, epsilon) result(space_group) bind(c, name="moyo_space_group_new"))

    Identify the space group from num_operations primitive rotations and translations; returns a pointer to MoyoSpaceGroup or NULL on failure. Pass c_null_ptr as basis to assume an identity basis and a negative epsilon to use the default tolerance (1e-4); hall_number is only used with MOYO_SETTING_HALL_NUMBER.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: prim_rotations
    type(c_ptr), value :: prim_translations
    integer(kind=c_int32_t), value :: num_operations
    type(c_ptr), value :: basis
    integer(kind=c_int32_t), value :: setting
    integer(kind=c_int32_t), value :: hall_number
    real(kind=c_double), value :: epsilon

    Return Value type(c_ptr)

interface

  • public function moyo_layer_group_new(prim_rotations, prim_translations, num_operations, basis, setting, hall_number, epsilon) result(layer_group) bind(c, name="moyo_layer_group_new"))

    Identify the layer group from num_operations primitive layer-cell rotations and translations; returns a pointer to MoyoLayerGroup or NULL on failure. Pass c_null_ptr as basis to assume an identity basis and a negative epsilon to use the default tolerance (1e-4); hall_number is only used with MOYO_LAYER_SETTING_HALL_NUMBER.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: prim_rotations
    type(c_ptr), value :: prim_translations
    integer(kind=c_int32_t), value :: num_operations
    type(c_ptr), value :: basis
    integer(kind=c_int32_t), value :: setting
    integer(kind=c_int32_t), value :: hall_number
    real(kind=c_double), value :: epsilon

    Return Value type(c_ptr)

interface

  • public function moyo_magnetic_space_group_new(prim_rotations, prim_translations, prim_time_reversals, num_operations, basis, epsilon) result(magnetic_space_group) bind(c, name="moyo_magnetic_space_group_new"))

    Identify the magnetic space group from num_operations primitive magnetic operations; returns a pointer to MoyoMagneticSpaceGroup or NULL on failure. Pass c_null_ptr as basis to assume an identity basis and a negative epsilon to use the default tolerance (1e-4).

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: prim_rotations
    type(c_ptr), value :: prim_translations
    type(c_ptr), value :: prim_time_reversals
    integer(kind=c_int32_t), value :: num_operations
    type(c_ptr), value :: basis
    real(kind=c_double), value :: epsilon

    Return Value type(c_ptr)

interface

  • public subroutine moyo_dataset_free(dataset) bind(c, name="moyo_dataset_free")

    Free a dataset created by moyo_dataset_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: dataset

interface

  • public subroutine moyo_layer_dataset_free(dataset) bind(c, name="moyo_layer_dataset_free")

    Free a dataset created by moyo_layer_dataset_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: dataset

interface

  • public subroutine moyo_collinear_magnetic_dataset_free(dataset) bind(c, name="moyo_collinear_magnetic_dataset_free")

    Free a dataset created by moyo_collinear_magnetic_dataset_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: dataset

interface

  • public subroutine moyo_noncollinear_magnetic_dataset_free(dataset) bind(c, name="moyo_noncollinear_magnetic_dataset_free")

    Free a dataset created by moyo_noncollinear_magnetic_dataset_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: dataset

interface

  • public subroutine moyo_operations_free(operations) bind(c, name="moyo_operations_free")

    Free operations returned by moyo_operations_from_number or moyo_operations_from_layer_number (not operations embedded in a dataset).

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: operations

interface

  • public subroutine moyo_magnetic_operations_free(magnetic_operations) bind(c, name="moyo_magnetic_operations_free")

    Free magnetic operations returned by moyo_magnetic_operations_from_uni_number (not operations embedded in a dataset).

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: magnetic_operations

interface

  • public subroutine moyo_hall_symbol_entry_free(entry) bind(c, name="moyo_hall_symbol_entry_free")

    Free an entry created by moyo_hall_symbol_entry_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: entry

interface

  • public subroutine moyo_layer_hall_symbol_entry_free(entry) bind(c, name="moyo_layer_hall_symbol_entry_free")

    Free an entry created by moyo_layer_hall_symbol_entry_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: entry

interface

  • public subroutine moyo_space_group_type_free(space_group_type) bind(c, name="moyo_space_group_type_free")

    Free a space-group type created by moyo_space_group_type_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: space_group_type

interface

  • public subroutine moyo_layer_group_type_free(layer_group_type) bind(c, name="moyo_layer_group_type_free")

    Free a layer-group type created by moyo_layer_group_type_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: layer_group_type

interface

  • public subroutine moyo_magnetic_space_group_type_free(magnetic_space_group_type) bind(c, name="moyo_magnetic_space_group_type_free")

    Free a magnetic space-group type created by moyo_magnetic_space_group_type_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: magnetic_space_group_type

interface

  • public subroutine moyo_point_group_free(point_group) bind(c, name="moyo_point_group_free")

    Free a point group created by moyo_point_group_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: point_group

interface

  • public subroutine moyo_space_group_free(space_group) bind(c, name="moyo_space_group_free")

    Free a space group created by moyo_space_group_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: space_group

interface

  • public subroutine moyo_layer_group_free(layer_group) bind(c, name="moyo_layer_group_free")

    Free a layer group created by moyo_layer_group_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: layer_group

interface

  • public subroutine moyo_magnetic_space_group_free(magnetic_space_group) bind(c, name="moyo_magnetic_space_group_free")

    Free a magnetic space group created by moyo_magnetic_space_group_new.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: magnetic_space_group

Derived Types

type, public, bind(c) ::  MoyoOperations

Symmetry operations. rotations points to num_operations int32 3x3 matrices and translations to num_operations real vectors; map them with c_f_pointer(ops%rotations, rot, [3, 3, int(ops%num_operations)]).

Components

Type Visibility Attributes Name Initial
type(c_ptr), public :: rotations
type(c_ptr), public :: translations
integer(kind=c_int32_t), public :: num_operations

type, public, bind(c) ::  MoyoMagneticOperations

Magnetic symmetry operations; time_reversals points to num_operations logical(c_bool) values.

Components

Type Visibility Attributes Name Initial
type(c_ptr), public :: rotations
type(c_ptr), public :: translations
type(c_ptr), public :: time_reversals
integer(kind=c_int32_t), public :: num_operations

type, public, bind(c) ::  MoyoCell

Crystal structure. basis(:, i) is the ith basis vector; positions points to num_atoms fractional coordinate triplets and numbers to num_atoms atomic numbers.

Components

Type Visibility Attributes Name Initial
real(kind=c_double), public :: basis(3,3)
type(c_ptr), public :: positions
type(c_ptr), public :: numbers
integer(kind=c_int32_t), public :: num_atoms

type, public, bind(c) ::  MoyoCollinearMagneticCell

Collinear magnetic structure; magnetic_moments points to cell%num_atoms scalar moments.

Components

Type Visibility Attributes Name Initial
type(MoyoCell), public :: cell
type(c_ptr), public :: magnetic_moments

type, public, bind(c) ::  MoyoNonCollinearMagneticCell

Non-collinear magnetic structure; magnetic_moments points to cell%num_atoms Cartesian moment vectors.

Components

Type Visibility Attributes Name Initial
type(MoyoCell), public :: cell
type(c_ptr), public :: magnetic_moments

type, public, bind(c) ::  MoyoDataset

A dataset of the symmetry analysis, created by moyo_dataset_new and freed by moyo_dataset_free. See moyoc.h for field documentation.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: number
integer(kind=c_int32_t), public :: hall_number
type(c_ptr), public :: hm_symbol
integer(kind=c_int32_t), public :: num_atoms
type(MoyoOperations), public :: operations
type(c_ptr), public :: orbits
type(c_ptr), public :: wyckoffs
type(c_ptr), public :: site_symmetry_symbols
type(MoyoCell), public :: std_cell
real(kind=c_double), public :: std_linear(3,3)
real(kind=c_double), public :: std_origin_shift(3)
real(kind=c_double), public :: std_rotation_matrix(3,3)
type(c_ptr), public :: pearson_symbol
type(MoyoCell), public :: prim_std_cell
real(kind=c_double), public :: prim_std_linear(3,3)
real(kind=c_double), public :: prim_std_origin_shift(3)
type(c_ptr), public :: mapping_std_prim
real(kind=c_double), public :: symprec
real(kind=c_double), public :: angle_tolerance

type, public, bind(c) ::  MoyoLayerDataset

A dataset of the layer-group symmetry analysis, created by moyo_layer_dataset_new and freed by moyo_layer_dataset_free.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: number
integer(kind=c_int32_t), public :: hall_number
type(c_ptr), public :: hm_symbol
integer(kind=c_int32_t), public :: num_atoms
type(MoyoOperations), public :: operations
type(c_ptr), public :: orbits
type(c_ptr), public :: wyckoffs
type(c_ptr), public :: site_symmetry_symbols
type(MoyoCell), public :: std_cell
real(kind=c_double), public :: std_linear(3,3)
real(kind=c_double), public :: std_origin_shift(3)
real(kind=c_double), public :: std_rotation_matrix(3,3)
type(c_ptr), public :: pearson_symbol
type(MoyoCell), public :: prim_std_cell
real(kind=c_double), public :: prim_std_linear(3,3)
real(kind=c_double), public :: prim_std_origin_shift(3)
type(c_ptr), public :: mapping_std_prim
real(kind=c_double), public :: symprec
real(kind=c_double), public :: angle_tolerance

type, public, bind(c) ::  MoyoCollinearMagneticDataset

A dataset of the magnetic symmetry analysis of a collinear magnetic structure, created by moyo_collinear_magnetic_dataset_new and freed by moyo_collinear_magnetic_dataset_free.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: uni_number
integer(kind=c_int32_t), public :: num_atoms
type(MoyoMagneticOperations), public :: magnetic_operations
type(c_ptr), public :: orbits
type(MoyoCollinearMagneticCell), public :: std_mag_cell
real(kind=c_double), public :: std_linear(3,3)
real(kind=c_double), public :: std_origin_shift(3)
real(kind=c_double), public :: std_rotation_matrix(3,3)
type(MoyoCollinearMagneticCell), public :: prim_std_mag_cell
real(kind=c_double), public :: prim_std_linear(3,3)
real(kind=c_double), public :: prim_std_origin_shift(3)
type(c_ptr), public :: mapping_std_prim
real(kind=c_double), public :: symprec
real(kind=c_double), public :: angle_tolerance
real(kind=c_double), public :: mag_symprec

type, public, bind(c) ::  MoyoNonCollinearMagneticDataset

A dataset of the magnetic symmetry analysis of a non-collinear magnetic structure, created by moyo_noncollinear_magnetic_dataset_new and freed by moyo_noncollinear_magnetic_dataset_free.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: uni_number
integer(kind=c_int32_t), public :: num_atoms
type(MoyoMagneticOperations), public :: magnetic_operations
type(c_ptr), public :: orbits
type(MoyoNonCollinearMagneticCell), public :: std_mag_cell
real(kind=c_double), public :: std_linear(3,3)
real(kind=c_double), public :: std_origin_shift(3)
real(kind=c_double), public :: std_rotation_matrix(3,3)
type(MoyoNonCollinearMagneticCell), public :: prim_std_mag_cell
real(kind=c_double), public :: prim_std_linear(3,3)
real(kind=c_double), public :: prim_std_origin_shift(3)
type(c_ptr), public :: mapping_std_prim
real(kind=c_double), public :: symprec
real(kind=c_double), public :: angle_tolerance
real(kind=c_double), public :: mag_symprec

type, public, bind(c) ::  MoyoHallSymbolEntry

Hall symbol database entry, created by moyo_hall_symbol_entry_new and freed by moyo_hall_symbol_entry_free.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: hall_number
integer(kind=c_int32_t), public :: number
integer(kind=c_int32_t), public :: arithmetic_number
type(c_ptr), public :: setting
type(c_ptr), public :: hall_symbol
type(c_ptr), public :: hm_short
type(c_ptr), public :: hm_full
type(c_ptr), public :: centering

type, public, bind(c) ::  MoyoLayerHallSymbolEntry

Layer Hall symbol database entry, created by moyo_layer_hall_symbol_entry_new and freed by moyo_layer_hall_symbol_entry_free.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: hall_number
integer(kind=c_int32_t), public :: number
integer(kind=c_int32_t), public :: arithmetic_number
type(c_ptr), public :: setting
type(c_ptr), public :: hall_symbol
type(c_ptr), public :: hm_short
type(c_ptr), public :: hm_full
type(c_ptr), public :: centering

type, public, bind(c) ::  MoyoSpaceGroupType

Space-group type information, created by moyo_space_group_type_new and freed by moyo_space_group_type_free.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: number
type(c_ptr), public :: hm_short
type(c_ptr), public :: hm_full
integer(kind=c_int32_t), public :: arithmetic_number
type(c_ptr), public :: arithmetic_symbol
type(c_ptr), public :: geometric_crystal_class
type(c_ptr), public :: crystal_system
type(c_ptr), public :: bravais_class
type(c_ptr), public :: lattice_system
type(c_ptr), public :: crystal_family

type, public, bind(c) ::  MoyoLayerGroupType

Layer-group type information, created by moyo_layer_group_type_new and freed by moyo_layer_group_type_free.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: number
type(c_ptr), public :: hm_short
type(c_ptr), public :: hm_full
integer(kind=c_int32_t), public :: arithmetic_number
type(c_ptr), public :: arithmetic_symbol
type(c_ptr), public :: geometric_crystal_class
type(c_ptr), public :: bravais_class
type(c_ptr), public :: lattice_system

type, public, bind(c) ::  MoyoMagneticSpaceGroupType

Magnetic space-group type information, created by moyo_magnetic_space_group_type_new and freed by moyo_magnetic_space_group_type_free.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: uni_number
integer(kind=c_int32_t), public :: litvin_number
type(c_ptr), public :: bns_number
type(c_ptr), public :: og_number
integer(kind=c_int32_t), public :: number
integer(kind=c_int32_t), public :: construct_type

type, public, bind(c) ::  MoyoPointGroup

Point group identified by moyo_point_group_new and freed by moyo_point_group_free. prim_trans_mat is the transpose view of the row-major C matrix.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: arithmetic_number
integer(kind=c_int32_t), public :: prim_trans_mat(3,3)

type, public, bind(c) ::  MoyoSpaceGroup

Space group identified by moyo_space_group_new and freed by moyo_space_group_free. linear is the transpose view of the row-major C matrix.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: number
integer(kind=c_int32_t), public :: hall_number
integer(kind=c_int32_t), public :: linear(3,3)
real(kind=c_double), public :: origin_shift(3)

type, public, bind(c) ::  MoyoLayerGroup

Layer group identified by moyo_layer_group_new and freed by moyo_layer_group_free. linear is the transpose view of the row-major C matrix.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: number
integer(kind=c_int32_t), public :: hall_number
integer(kind=c_int32_t), public :: linear(3,3)
real(kind=c_double), public :: origin_shift(3)

type, public, bind(c) ::  MoyoMagneticSpaceGroup

Magnetic space group identified by moyo_magnetic_space_group_new and freed by moyo_magnetic_space_group_free. linear is the transpose view of the row-major C matrix.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: uni_number
integer(kind=c_int32_t), public :: linear(3,3)
real(kind=c_double), public :: origin_shift(3)

Functions

public function moyo_to_string(c_str) result(f_str)

Convert a NUL-terminated C string (type(c_ptr)) into a Fortran character value. Returns an empty string for a NULL pointer.

Arguments

Type IntentOptional Attributes Name
type(c_ptr), intent(in) :: c_str

Return Value character(len=:), allocatable