phlower.settings.GroupModuleSetting

class phlower.settings.GroupModuleSetting(*, name, inputs=<factory>, outputs=<factory>, modules_same_as=None, modules=<factory>, destinations=<factory>, nn_type='Group', no_grad=False, solver_type='none', is_steady_problem=False, solver_parameters=<factory>, time_series_length=None)[source]

Bases: BaseModel, IModuleSetting, IReadOnlyReferenceGroupSetting

Methods

find_module(name)

get_destinations()

get_input_keys()

get_name()

get_output_info()

get_output_keys()

resolve(*resolved_outputs[, is_first, parent])

search_group_setting(name)

search_module_setting(name)

Attributes

model_computed_fields

model_config

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

model_extra

Get extra fields set during validation.

model_fields

model_fields_set

Returns the set of fields that have been explicitly set on this model instance.

name

name of group

inputs

definition of input variables

outputs

definition of output variables

modules_same_as

name of another group to copy modules.

modules

modules which belongs to this group

destinations

name of destination modules.

nn_type

name of neural network type.

no_grad

A Flag not to calculate gradient.

solver_type

Solver name calculating in iteration loop

is_steady_problem

When true, updating function in the group iteraion is defined as steady problems

solver_parameters

Parameters to pass iteration solver.

time_series_length

If feed integer value, do iteration to output time series tensor.

Parameters:
  • name (str)

  • inputs (list[GroupIOSetting])

  • outputs (list[GroupIOSetting])

  • modules_same_as (str | None)

  • modules (list[Annotated[Annotated[GroupModuleSetting, Tag(tag=GROUP)] | Annotated[ModuleSetting, Tag(tag=MODULE)], Discriminator(discriminator=~phlower.settings._group_setting._custom_discriminator, custom_error_type=invalid_union_member, custom_error_message=Invalid union member, custom_error_context={'discriminator': 'group_or_module'})]])

  • destinations (list[str])

  • nn_type (Literal['Group', 'GROUP'])

  • no_grad (bool)

  • solver_type (str)

  • is_steady_problem (bool)

  • solver_parameters (Annotated[IPhlowerIterationSolverSetting, PlainValidator(func=~phlower.settings._nonlinear_solver_setting._validate, json_schema_input_type=~typing.Any), PlainSerializer(func=~phlower.settings._nonlinear_solver_setting._serialize, return_type=PydanticUndefined, when_used=always)])

  • time_series_length (int | None)

destinations: list[str]

name of destination modules.

inputs: list[GroupIOSetting]

definition of input variables

is_steady_problem: bool

When true, updating function in the group iteraion is defined as steady problems

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'validate_assignment': True}

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

modules: list[Annotated[Annotated[GroupModuleSetting, Tag(_DiscriminatorTag.GROUP.name)] | Annotated[ModuleSetting, Tag(_DiscriminatorTag.MODULE.name)], Discriminator(_custom_discriminator, custom_error_type='invalid_union_member', custom_error_message='Invalid union member', custom_error_context={'discriminator': 'group_or_module'})]]

modules which belongs to this group

modules_same_as: str | None

name of another group to copy modules.

name: str

name of group

nn_type: Literal['Group', 'GROUP']

name of neural network type. Fixed to “Group” or “GROUP”

no_grad: bool

A Flag not to calculate gradient. Defauls to False.

outputs: list[GroupIOSetting]

definition of output variables

solver_parameters: SolverParameters

Parameters to pass iteration solver. Contents depends on solver_type

solver_type: str

Solver name calculating in iteration loop

none: No iteration. simple: run iteration until calculated value is converged. bb: Barzilan-Borwein method is used to converge iteration results.

time_series_length: int | None

If feed integer value, do iteration to output time series tensor.