Skip to content

Cells

Cell

Bases: Item

A model for representing electrochemical cells.

Attributes:

Name Type Description
active_ion_charge float
blocks_obj dict[str, DataBlockResponse]

A mapping from block ID to block data.

cell_format CellFormat | None

The form factor of the cell, e.g., coin, pouch, in situ or otherwise.

cell_format_description str | None

Additional human-readable description of the cell form factor, e.g., 18650, AMPIX, CAMPIX

cell_preparation_description str | None
characteristic_chemical_formula str | None

The chemical formula of the active material. Can be used to calculated molar mass in g/mol for normalizing capacities.

characteristic_mass float | None

The characteristic mass of the cell in milligrams. Can be used to normalize capacities.

characteristic_molar_mass float | None

The molar mass of the active material, in g/mol. Will be inferred from the chemical formula, or can be supplied if it cannot be supplied

collections list[Collection]

Inlined info for the collections associated with this item.

creator_ids list[PyObjectId]

The database IDs of the user(s) who created the item.

creators list[Person] | None

Inlined info for the people associated with this item.

date IsoformatDateTime | None

A relevant 'creation' timestamp for the entry (e.g., purchase date, synthesis date).

description str | None

A description of the item, either in plain-text or a markup language.

display_order list[str]

The order in which to display block data in the UI.

electrolyte list[CellComponent]
file_ObjectIds list[PyObjectId]

Links to object IDs of files stored within the database.

files list[File] | None

Any files attached to this sample.

immutable_id PyObjectId

The immutable database ID of the entry.

item_id HumanReadableIdentifier

A locally unique, human-readable identifier for the entry. This ID is mutable.

last_modified IsoformatDateTime | None

The timestamp at which the entry was last modified.

name str | None

An optional human-readable/usable name for the entry.

negative_electrode list[CellComponent]
positive_electrode list[CellComponent]
refcode Refcode

A globally unique immutable ID comprised of the deployment prefix (e.g., grey)

relationships list[TypedRelationship] | None

A list of related entries and their types.

revision int

The revision number of the entry.

revisions dict[int, Any] | None

An optional mapping from old revision numbers to the model state at that revision.

type str

The resource type of the entry.

active_ion_charge

active_ion_charge: float = 1

blocks_obj

blocks_obj: dict[str, DataBlockResponse] = Field({})

A mapping from block ID to block data.

cell_format

cell_format: CellFormat | None

The form factor of the cell, e.g., coin, pouch, in situ or otherwise.

cell_format_description

cell_format_description: str | None

Additional human-readable description of the cell form factor, e.g., 18650, AMPIX, CAMPIX

cell_preparation_description

cell_preparation_description: str | None

characteristic_chemical_formula

characteristic_chemical_formula: str | None

The chemical formula of the active material. Can be used to calculated molar mass in g/mol for normalizing capacities.

characteristic_mass

characteristic_mass: float | None

The characteristic mass of the cell in milligrams. Can be used to normalize capacities.

characteristic_molar_mass

characteristic_molar_mass: float | None

The molar mass of the active material, in g/mol. Will be inferred from the chemical formula, or can be supplied if it cannot be supplied

collections

collections: list[Collection] = Field([])

Inlined info for the collections associated with this item.

creator_ids

creator_ids: list[PyObjectId] = Field([])

The database IDs of the user(s) who created the item.

creators

creators: list[Person] | None = Field(None)

Inlined info for the people associated with this item.

date

date: IsoformatDateTime | None

A relevant 'creation' timestamp for the entry (e.g., purchase date, synthesis date).

description

description: str | None

A description of the item, either in plain-text or a markup language.

display_order

display_order: list[str] = Field([])

The order in which to display block data in the UI.

electrolyte

electrolyte: list[CellComponent] = []

file_ObjectIds

file_ObjectIds: list[PyObjectId] = Field([])

Links to object IDs of files stored within the database.

files

files: list[File] | None

Any files attached to this sample.

immutable_id

immutable_id: PyObjectId = Field(None, title='Immutable ID', alias='_id', format='uuid')

The immutable database ID of the entry.

item_id

item_id: HumanReadableIdentifier

A locally unique, human-readable identifier for the entry. This ID is mutable.

last_modified

last_modified: IsoformatDateTime | None = None

The timestamp at which the entry was last modified.

name

name: str | None

An optional human-readable/usable name for the entry.

negative_electrode

negative_electrode: list[CellComponent] = []

positive_electrode

positive_electrode: list[CellComponent] = []

refcode

refcode: Refcode = None

A globally unique immutable ID comprised of the deployment prefix (e.g., grey) and a locally unique string, ideally created with some consistent scheme.

relationships

relationships: list[TypedRelationship] | None = None

A list of related entries and their types.

revision

revision: int = 1

The revision number of the entry.

revisions

revisions: dict[int, Any] | None = None

An optional mapping from old revision numbers to the model state at that revision.

type

type: str = Field('cells', const='cells', pattern='^cells$')

The resource type of the entry.

add_missing_collection_relationships

add_missing_collection_relationships(values)

add_missing_electrode_relationships

add_missing_electrode_relationships(values)

Add any missing sample synthesis constituents to parent relationships

check_id_names

check_id_names(values)

Slightly upsetting hack: this case should be covered by the pydantic setting for populating fields by alias names.

refcode_validator

refcode_validator(v)

Generate a refcode if not provided.

set_molar_mass

set_molar_mass(v, values)

to_reference

to_reference(additional_fields: list[str] | None = None) -> EntryReference

Populate an EntryReference model from this entry, selecting additional fields to inline.

Parameters:

Name Type Description Default
additional_fields list[str] | None

A list of fields to inline in the reference.

None

CellComponent

Bases: Constituent

Attributes:

Name Type Description
item EntryReference | InlineSubstance

A reference to item (sample or starting material) entry for the constituent substance.

quantity float | None

The amount of the constituent material used to create the sample.

unit str

The unit symbol for the value provided in quantity, default is mass

item

item: EntryReference | InlineSubstance

A reference to item (sample or starting material) entry for the constituent substance.

quantity

quantity: float | None = Field(..., ge=0)

The amount of the constituent material used to create the sample.

unit

unit: str = Field('g')

The unit symbol for the value provided in quantity, default is mass in grams (g) but could also refer to volumes (mL, L, etc.) or moles (mol).

check_itemhood

check_itemhood(v)

Check that the reference within the constituent is to an item type.

coerce_reference

coerce_reference(v)

CellFormat

Bases: str, Enum

Attributes:

Name Type Description
coin
cylindrical
in_situ_nmr
in_situ_optical
in_situ_squid
in_situ_xrd
other
pouch
swagelok

coin

coin = 'coin'

cylindrical

cylindrical = 'cylindrical'

in_situ_nmr

in_situ_nmr = 'in situ (NMR)'

in_situ_optical

in_situ_optical = 'in situ (optical)'

in_situ_squid

in_situ_squid = 'in situ (SQUID)'

in_situ_xrd

in_situ_xrd = 'in situ (XRD)'

other

other = 'other'

pouch

pouch = 'pouch'

swagelok

swagelok = 'swagelok'