Mordicus.Containers.CollectionProblemData

class CollectionProblemData[source]

Bases: object

Class containing a set of collection of problemData

problemDatas

dictionary with problem tags (str) as keys and problemDatas (ProblemData) as values

Type:

dict(str: ProblemData)

reducedOrderBases

dictionary with solutionNames (str) as keys and reducedOrderBases (np.ndarray of size (numberOfModes, numberOfDOFs)) as values

Type:

dict(str: np.ndarray)

solutionStructures

dictionary with solutionNames (str) as keys and SolutionStructure as values

Type:

dict(str: SolutionStructure)

variabilityDefinition

defines the problem variability, dictionary with variability names (typically, names of parameters) as keys

Type:

dict(str: dict)

variabilitySupport

defines the allowed values for parameters (definition domain), dictionary with the parameter sampling as values

Type:

dict(str or tuple: ndarray)

quantityDefinition

defines a new quantity for results, dictionary with solutionNames (str) as keys and a couple for strings (solution description, unit) as values

Type:

dict(str: (str,str))

templateDataset

dataset to solve the HF problem for a new set of parameter values, contains a input_instruction_file with keywords to replace

Type:

SolverDataset

reducedTemplateDataset

dataset to solve the reduced problem for a new set of parameter values, contains a input_instruction_file with keywords to replace

Type:

SolverDataset

specificDatasets

dictonary with the name of the operation as key and corresponding SolverDataset as value

Type:

dict(str: SolverDataset)

dataCompressionData

dictionary with solutionNames (str) as keys and data structure generated by the data compression step as values

Type:

dict(str: custom_data_structure)

operatorCompressionData

dictionary with solutionNames (str) as keys and data structure generated by the data compression step as values

Type:

dict(str: OperatorCompressionDataBase)

AddDataCompressionData(key, dataCompressionData)[source]

Adds a dataCompressionData corresponding to key

Parameters:
  • key (str) – solutionName for which dataCompressionData corresponds

  • dataCompressionData (custom data structure) – data structure generated by the data compression step as values

AddOperatorCompressionData(operatorCompressionData)[source]

Adds an operatorCompressionData

Parameters:

operatorCompressionData (OperatorCompressionDataBase) – data structure generated by the operator compression step

AddProblemData(problemData, **kwargs)[source]

Adds a problemData to the structure

Parameters:
  • problemData (ProblemData) – to add to the problemDatas dictionary

  • kwargs – same type as the axes of variability, gives the point in parameter space at which to add data

AddReducedOrderBasis(solutionName, reducedOrderBasis)[source]

Adds a reducedOrderBasis corresponding to solution solutionName

Parameters:
  • solutionName (str) – name of the solution for which reducedOrderBasis is a reduced order basis

  • reducedOrderBasis (np.ndarray) – of size (numberOfModes, numberOfDOFs)

AddVariabilityAxis(varname, vartype, **kwargs)[source]

Sets the axes of variability: names to be served as keys to collect ProblemData instances and documenting properties

Parameters:
  • varname (str) – name of the axis, to be served as keys

  • vartype (type) – type of the expected values for this axis

  • quantity (tuple) – (optional) describes the physical quantity of the parameter. For now a tuple (full name, unit)

  • description (str) – (optional) describes the role of the axis of variability

CompressSolutions(solutionName, snapshotCorrelationOperator=None)[source]

Compress solutions of name “solutionName” from all ProblemDatas in collectionProblemData, and update to corresponding solution.reducedCoordinates.

Parameters:
  • solutionName (str) – name of the solutions to compress

  • snapshotCorrelationOperator (scipy.sparse.csr_matrix, optional) – correlation operator between the snapshots

ComputeAPosterioriError(**kwargs)[source]

Computes the residual of equilibrium

Return type:

field

ComputeReducedOrderBasisProjection(solutionName, newReducedOrderBasis, snapshotCorrelationOperator=None)[source]

Computes the projection of reducedOrderBasis[solutionName] on newReducedOrderBases

Parameters:
  • solutionName (str) – name of the solutions to compress

  • newReducedOrderBasis (np.ndarray) – of size (newNumberOfModes, numberOfDOFs)

  • snapshotCorrelationOperator (scipy.sparse.csr, optional) – correlation operator between the snapshots

Returns:

of size (newNumberOfModes, numberOfModes)

Return type:

np.ndarray

ConvertReducedCoordinatesReducedOrderBasis(solutionName, projectedReducedOrderBasis)[source]

Converts the reducedSnapshot from the current reducedOrderBasis to a newReducedOrderBasis using a projectedReducedOrderBasis between the current one and a new one

Parameters:
  • solutionName (str) – name of the solution whose reducedCoordinates is to convert

  • projectedReducedOrderBasis (np.ndarray) – of size (newNumberOfModes, numberOfModes)

DefineQuantity(key, full_name='', unit='')[source]

Define a new quantity for results

Parameters:
  • key (str) – Key to be served in ProblemData to retrieve the result

  • full_name (str) – Full name of the quantity, e.g. “velocity”

  • unit (str) – Measuring unit, e.g. “meter”

DefineVariabilityAxes(names, types, quantities=None, descriptions=None)[source]

Sets the axes of variability: names to be served as keys to collect ProblemData instances and documenting properties

Parameters:
  • names (tuple) – names of axes, to be served as keys

  • types (type) – type of the expected values for this axis

  • quantities (iterable) – (optional) describes the physical quantity of the parameter. For now an iterable of tuples (full name, unit)

  • descriptions (iterable) – (optional) describes the role of the axis of variability

DefineVariabilitySupport(parameters, ndarrays)[source]
Parameters:
  • parameters (iterable) – iterable over the identifiers (str or tuple(str)) of parameters

  • ndarrays (iterable) – iterable over the discrete support for each identifier

Note

Parameters may have a tuple of parameters as a component, when the discrete support along these two or more parameters is not cartesian.

Then, the corresponding ndarray has shape (numberOfPoints, numerOfParametersInTuple)

The whole discrete support is generated as a cartesian product of discrete supports.

GenerateVariabilitySupport()[source]

Realizes the catersian product to generate full grid for variability support

Returns:

ndarray of shape(totalNumberOfPoints, numberOfParameters) with the coordinates of points

Return type:

ndarray

Note

On the last axis, parameters values are those of the parameters in the order they were declared in defineVariabilitySupport

GetDataCompressionData(key)[source]

Get a precomputed dataCompressionData for key

Parameters:

key (str) – key for which dataCompressionData corresponds

Returns:

custom data structure

Return type:

dataCompressionData

GetGlobalNumberOfSnapshots(solutionName, skipFirst=False)[source]

Iterates over problemDatas to return the complete number of snpashots for solutions of name “solutionName”

Parameters:

solutionName (str) – name of the solutions for which we want to compute the total number of snapshots

Returns:

number of snpashots for solutions of name “solutionName”

Return type:

int

GetLoadingsOfType(type)[source]

Returns a list of loadings of a given type

Parameters:

type (str) – type of loadings (eg. pressure) as defined in the LoadingBase structure

Returns:

of Loadings

Return type:

list

GetNumberOfProblemDatas()[source]

Returns the number of problemDatas

Returns:

the number of problemDatas

Return type:

int

GetNumberOfVariabilityAxes()[source]

Gets the number of variability axes.

Returns:

number of variability axes

Return type:

int

GetOperatorCompressionData(key)[source]

Get a precomputed operatorCompressionData for key

Parameters:

key (str) – key for which operatorCompressionData corresponds

Returns:

custom data structure

Return type:

operatorCompressionData

GetParameterDimension()[source]

Asserts that the parameters of all problemDatas have the same parameterDimension and returns this size

Returns:

parameterDimension of problemDatas

Return type:

int

GetProblemData(**kwargs)[source]

Returns a specific problemData

Parameters:

kwargs – same type as the axes of variability, gives the point in parameter space at which to add data

Returns:

retrieved problemData

Return type:

ProblemData

GetProblemDatas()[source]

Returns the complete problemDatas dictionary

Returns:

problemDatas of the collectionProblemData

Return type:

dict

GetProblemSampling()[source]

Return the tags of problemDatas

Returns:

list of tuples containing the computed parameter points of the available problemDatas

Return type:

list

GetReducedCoordinates(solutionName, skipFirst=False)[source]

Returns compressed snapshots of solution solutionName from all problemDatas, in a numpy array

Parameters:
  • solutionName (str) – name of the solutions on which we want to iterate over reducedCoordinates

  • skipFirst (bool) – (optional) True for skipping first time step of each ProblemData

Returns:

of size (nbSnapshots, numberOfModes)

Return type:

np.ndarray

GetReducedCoordinatesAtTimes(solutionName, timeSequence)[source]

Returns compressed snapshots of solution solutionName from all problemDatas and for a given time sequence, in a numpy array

Parameters:
  • solutionName (str) – name of the solutions on which we want to iterate over reducedCoordinates

  • timeSequence (list or numpy array) – time steps for snapshot retrieving (doing time interpolation if needed)

Returns:

of size (nbSnapshots, numberOfModes)

Return type:

np.ndarray

GetReducedOrderBases()[source]

Get the dictionary of precomputed reducedOrderBases

Returns:

reducedOrderBases – dictionary with solutionNames (str) as keys and reducedOrderBases (np.ndarray of size (numberOfModes, numberOfDOFs)) as values

Return type:

dict

GetReducedOrderBasis(solutionName)[source]

Get a precomputed reducedOrderBases for solution solutionName

Parameters:

solutionName (str) – name of the solution for which the reducedOrderBases is retrieved

Returns:

of size (numberOfModes, numberOfDOFs)

Return type:

np.ndarray

GetReducedOrderBasisNumberOfModes(solutionName)[source]

Get the number of modes of a precomputed reducedOrderBases for solution solutionName

Parameters:

solutionName (str) – name of the solution for which the reducedOrderBases is retrieved

Returns:

numberOfModes

Return type:

int

GetSnapshots(solutionName, skipFirst=False)[source]

Returns snapshots in a numpy array

Parameters:
  • solutionName (str) – name of the solutions on which we want to iterate over snapshots

  • skipFirst (bool) – (optional) True for skipping first time step of each ProblemData

Returns:

of size (nbSnapshots, numberOfDofs)

Return type:

np.ndarray

GetSnapshotsAtTimes(solutionName, timeSequence)[source]

Returns snapshots of solution solutionName from all problemDatas and for a given time sequence, in a numpy array

Parameters:
  • solutionName (str) – name of the solutions on which we want to iterate over reducedCoordinates

  • timeSequence (list or numpy array) – time steps for snapshot retrieving (doing time interpolation if needed)

Returns:

of size (nbSnapshots, numberOfDofs)

Return type:

np.ndarray

GetSolutionStructure(solutionName)[source]
Parameters:

solutionName (str) – identifier of the physical quantity, e.g. “U”, “sigma”

Returns:

solution structure for the demanded solution

Return type:

SolutionStructureBase

GetSolutionTimeSteps(solutionName, skipFirst=False)[source]

GetTimeSteps

Parameters:

solutionName (str) – name of the solutions for which we want to compute the total number of snapshots

GetSolutionsNumberOfComponents(solutionName)[source]

Asserts that the solutions of name “solutionName” in all problemDatas have same nbeOfComponents and return this size

Parameters:

solutionName (str) – name of the solutions for which we want to return the nbeOfComponents

Returns:

nbeOfComponents of solutions of name “solutionName”

Return type:

int

GetSolutionsNumberOfDofs(solutionName)[source]

Asserts that the solutions of name “solutionName” in all problemDatas have same nbeOfDofs and return this size

Parameters:

solutionName (str) – name of the solutions for which we want to return the nbeOfDofs

Returns:

nbeOfDofs of solutions of name “solutionName”

Return type:

int

GetSolutionsNumberOfNodes(solutionName)[source]

Asserts that the solutions of name “solutionName” in all problemDatas have same nbeOfNodes and return this size

Parameters:

solutionName (str) – name of the solutions for which we want to return the nbeOfNodes

Returns:

nbeOfNodes of solutions of name “solutionName”

Return type:

int

ReducedCoordinatesIterator(solutionName, skipFirst=False)[source]

Constructs an iterator over reducedCoordinates of solutions of name “solutionName” in all problemDatas.

Parameters:
  • solutionName (str) – name of the solutions on which we want to iterate over reducedCoordinates

  • skipFirst (bool) – (optional) True for skipping first time step of each ProblemData

Returns:

an iterator over reducedCoordinates of solutions of name “solutionName” in all problemDatas

Return type:

iterator

SetReducedTemplateDataset(reducedTemplateDataset)[source]

Template dataset to compute reduced solution

Parameters:

reducedTemplateDataset (Dataset) –

SetSolutionStructure(solutionName, solutionStructure)[source]
Parameters:
  • solutionName (str) – identifier of the physical quantity, e.g. “U”, “sigma”

  • solutionStructure (SolutionStructureBase) – solution structure for the demanded solution

SetTemplateDataset(templateDataset)[source]

Template dataset to compute high-fidelity solution

Parameters:

templateDataset (Dataset) –

SnapshotsIterator(solutionName, skipFirst=False)[source]

Constructs an iterator over snapshots of solutions of name “solutionName” in all problemDatas.

Parameters:

solutionName (str) – name of the solutions on which we want to iterate over snapshots

Returns:

an iterator over snapshots of solutions of name “solutionName” in all problemDatas

Return type:

iterator

Solve(**kwargs)[source]

New high-fidelity model evaluation

Parameters:

kwargs ((parameter_name=value) name of the variability as key and value stays value.) –

SolveReduced(**kwargs)[source]

New high-fidelity model evaluation

Parameters:

kwargs ((parameter_name=value) name of the variability as key and value stays value.) –

class NoAxisDuplicateDict[source]

Bases: dict

A dict imposing that (‘a’, ‘b’) is invalid key if ‘a’ is a existing key