SimuBox.schema.structs.DataFile module

class SimuBox.schema.structs.DataFile.Density(*, path: Path | None = None, data: DataFrame, NxNyNz: ndarray | None = None, lxlylz: ndarray | None = None, shape: ndarray | None = None)

基类:MixinBaseModel

密度类文件的解析结果。密度类文件包括:phout/phin/block/joint/component。

NxNyNz: ndarray | None
data: DataFrame
lxlylz: ndarray | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'NxNyNz': FieldInfo(annotation=Union[ndarray, NoneType], required=False), 'data': FieldInfo(annotation=DataFrame, required=True), 'lxlylz': FieldInfo(annotation=Union[ndarray, NoneType], required=False), 'path': FieldInfo(annotation=Union[Path, NoneType], required=False), 'shape': FieldInfo(annotation=Union[ndarray, NoneType], required=False)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

path: Path | None
repair_data(inputs: dict | Sequence[int | float] | Iterable[int | float] | ndarray | str = 'auto', species: dict | None = None, constraint: Sequence[int | float] | Iterable[int | float] | ndarray | None = None)

对密度数据进行修复(当前仅针对block.txt文件)

参数:
  • inputs – 每个嵌段的体积分数,该输入可以是input.json文件、嵌段体积分数的向量以及’auto’,’auto’代表通过线性方程求解来自动修复密度。

  • species – 每种分子链的体积分数,字典形式(键为json文件中的SpecyID, 值为VolumeFraction)。

  • constraint – 对于自动求解的模式,可以增加额外的限制变量。

返回:

repair_from_fet(fet: Fet)

基于fet文件对密度进行修复。

参数:

fet – fet文件的解析结果。

返回:

repair_from_printout(printout: Printout)

基于printout文件对密度进行修复。

参数:

printout – printout文件的解析结果。

返回:

None

shape: ndarray | None
class SimuBox.schema.structs.DataFile.DensityParseResult(*, path: Path | None = None, raw_NxNyNz: ndarray, raw_lxlylz: ndarray, raw_mat: ndarray, lxlylz: ndarray, NxNyNz: ndarray, mat: ndarray, expand: ndarray, target: list[int])

基类:MixinBaseModel

密度文件数据的二次加工结果

NxNyNz: ndarray
expand: ndarray
lxlylz: ndarray
mat: ndarray
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'NxNyNz': FieldInfo(annotation=ndarray, required=True), 'expand': FieldInfo(annotation=ndarray, required=True), 'lxlylz': FieldInfo(annotation=ndarray, required=True), 'mat': FieldInfo(annotation=ndarray, required=True), 'path': FieldInfo(annotation=Union[Path, NoneType], required=False), 'raw_NxNyNz': FieldInfo(annotation=ndarray, required=True), 'raw_lxlylz': FieldInfo(annotation=ndarray, required=True), 'raw_mat': FieldInfo(annotation=ndarray, required=True), 'target': FieldInfo(annotation=list[int], required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

path: Path | None
raw_NxNyNz: ndarray
raw_lxlylz: ndarray
raw_mat: ndarray
target: list[int]
class SimuBox.schema.structs.DataFile.Fet(*, path: Path | None = None, xACN: float | None = None, xCAN: float | None = None, xABN: float | None = None, xBAN: float | None = None, xCBN: float | None = None, xBCN: float | None = None, stressX: float | None = None, stressY: float | None = None, stressZ: float | None = None, lx: float | None = None, ly: float | None = None, lz: float | None = None, lx_full: float | None = None, ly_full: float | None = None, lz_full: float | None = None, freeEnergy: float | None = None, freeAB_sum: float | None = None, freeAB: float | None = None, freeBA: float | None = None, freeAC: float | None = None, freeCA: float | None = None, freeBC: float | None = None, freeCB: float | None = None, freeW: float | None = None, freeS: float | None = None, freeDiff: float | None = None, inCompMax: float | None = None, Q0: float | None = None, VolumeFraction0: float | None = None, sumVolume: float | None = None, activity0: float | None = None)

基类:MixinBaseModel

SCFT产出的fet.dat(.txt)文件的解析结果。

Q0: float | None
VolumeFraction0: float | None
activity0: float | None
freeAB: float | None
freeAB_sum: float | None
freeAC: float | None
freeBA: float | None
freeBC: float | None
freeCA: float | None
freeCB: float | None
freeDiff: float | None
freeEnergy: float | None
freeS: float | None
freeW: float | None
inCompMax: float | None
lx: float | None
lx_full: float | None
ly: float | None
ly_full: float | None
lz: float | None
lz_full: float | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'Q0': FieldInfo(annotation=Union[float, NoneType], required=False), 'VolumeFraction0': FieldInfo(annotation=Union[float, NoneType], required=False), 'activity0': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeAB': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeAB_sum': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeAC': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeBA': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeBC': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeCA': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeCB': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeDiff': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeEnergy': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeS': FieldInfo(annotation=Union[float, NoneType], required=False), 'freeW': FieldInfo(annotation=Union[float, NoneType], required=False), 'inCompMax': FieldInfo(annotation=Union[float, NoneType], required=False), 'lx': FieldInfo(annotation=Union[float, NoneType], required=False), 'lx_full': FieldInfo(annotation=Union[float, NoneType], required=False), 'ly': FieldInfo(annotation=Union[float, NoneType], required=False), 'ly_full': FieldInfo(annotation=Union[float, NoneType], required=False), 'lz': FieldInfo(annotation=Union[float, NoneType], required=False), 'lz_full': FieldInfo(annotation=Union[float, NoneType], required=False), 'path': FieldInfo(annotation=Union[Path, NoneType], required=False), 'stressX': FieldInfo(annotation=Union[float, NoneType], required=False), 'stressY': FieldInfo(annotation=Union[float, NoneType], required=False), 'stressZ': FieldInfo(annotation=Union[float, NoneType], required=False), 'sumVolume': FieldInfo(annotation=Union[float, NoneType], required=False), 'xABN': FieldInfo(annotation=Union[float, NoneType], required=False), 'xACN': FieldInfo(annotation=Union[float, NoneType], required=False), 'xBAN': FieldInfo(annotation=Union[float, NoneType], required=False), 'xBCN': FieldInfo(annotation=Union[float, NoneType], required=False), 'xCAN': FieldInfo(annotation=Union[float, NoneType], required=False), 'xCBN': FieldInfo(annotation=Union[float, NoneType], required=False)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

path: Path | None
stressX: float | None
stressY: float | None
stressZ: float | None
sumVolume: float | None
xABN: float | None
xACN: float | None
xBAN: float | None
xBCN: float | None
xCAN: float | None
xCBN: float | None
class SimuBox.schema.structs.DataFile.Printout(*, path: Path | None = None, box: ndarray, lxlylz: ndarray, step: int, freeEnergy: float, freeW: float, freeS: float, freeWS: float, freeU: float, inCompMax: float, volumes: ndarray, potentials: ndarray)

基类:MixinBaseModel

TOPS产出的printout.txt文件的解析结果。

box: ndarray
freeEnergy: float
freeS: float
freeU: float
freeW: float
freeWS: float
inCompMax: float
lxlylz: ndarray
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'box': FieldInfo(annotation=ndarray, required=True), 'freeEnergy': FieldInfo(annotation=float, required=True), 'freeS': FieldInfo(annotation=float, required=True), 'freeU': FieldInfo(annotation=float, required=True), 'freeW': FieldInfo(annotation=float, required=True), 'freeWS': FieldInfo(annotation=float, required=True), 'inCompMax': FieldInfo(annotation=float, required=True), 'lxlylz': FieldInfo(annotation=ndarray, required=True), 'path': FieldInfo(annotation=Union[Path, NoneType], required=False), 'potentials': FieldInfo(annotation=ndarray, required=True), 'step': FieldInfo(annotation=int, required=True), 'volumes': FieldInfo(annotation=ndarray, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

path: Path | None
potentials: ndarray
step: int
volumes: ndarray
class SimuBox.schema.structs.DataFile.XML(*, path: Path, NxNyNz: ndarray, lxlylz: ndarray, grid_spacing: ndarray, data: DataFrame, atoms_type: list, atoms_mapping: dict[str, int])

基类:MixinBaseModel

NxNyNz: ndarray
atoms_mapping: dict[str, int]
atoms_type: list
data: DataFrame
grid_spacing: ndarray
lxlylz: ndarray
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'NxNyNz': FieldInfo(annotation=ndarray, required=True), 'atoms_mapping': FieldInfo(annotation=dict[str, int], required=True), 'atoms_type': FieldInfo(annotation=list, required=True), 'data': FieldInfo(annotation=DataFrame, required=True), 'grid_spacing': FieldInfo(annotation=ndarray, required=True), 'lxlylz': FieldInfo(annotation=ndarray, required=True), 'path': FieldInfo(annotation=Path, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

path: Path
class SimuBox.schema.structs.DataFile.XMLTransResult(*, xml: XML, phi: ndarray)

基类:MixinBaseModel

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'phi': FieldInfo(annotation=ndarray, required=True), 'xml': FieldInfo(annotation=XML, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

phi: ndarray
write(phi: ndarray | None = None, path: str | Path | None = None, scale: bool = False)

将密度信息输出到文件。

参数:
  • phi – 密度矩阵。

  • path – 文件路径。若为空,则默认在对应xml文件的同目录下。

  • scale – 是否对密度进行归一化。

返回:

xml: XML