obtain_blessed_linear_builder_input

emmet.builders.materials.linear_response.obtain_blessed_linear_builder_input(tasks, property_name, target, material_id=None, material_last_updated=None)

Yield a target document [DielectricBuilderInput | PiezoelectricBuilderInput] from a list of CoreTaskDocs using the ‘best’ document in the list.

Return type:

TypeVar(T, DielectricBuilderInput, PiezoelectricBuilderInput)

Parameters:
  • tasks (list[CoreTaskDoc])

  • property_name (Literal['dielectric', 'piezoelectric'])

  • target (T)

  • material_id (Annotated[MPID | AlphaID, BeforeValidator(func=functools.partial(<function _fault_tolerant_id_serde at 0x7f75d76d4cc0>, legacy=True, prefix='mp', padlen=8), json_schema_input_type=PydanticUndefined), PlainSerializer(func=functools.partial(<function _fault_tolerant_id_serde at 0x7f75d76d4cc0>, serialize=True, legacy=True, prefix='mp', padlen=8), return_type=PydanticUndefined, when_used=always)] | None)

  • material_last_updated (datetime | None)

[Optional] Relevant material properties needed if running in context of building properties for ‘material’s:

  • material_id -> anchor identifier for all tasks

  • material_last_updated -> when anchor material document was last updated

Relevant CoreTaskDoc fields needed:
  • task_id

  • last_updated

  • input.is_hubbard

  • input.kpoints

  • input.structure

  • orig_inputs.kpoints

  • output.outcar

  • output.bandgap

  • output.epsilon_ionic

  • output.epsilon_static

CoreTaskDocs need to have non-null bandgap