MecaSequentialGappyBiaisMetaModel
This use case aims to validate the methodology POD + ECM for quasistatic elastoviscoplastic computations with Z-set, with a reconstruction of the dual quantities using a meta model, see Section Publications, articles 1 and 8.
Optional prerequisite: Zmat.
The data needed to execute the tutorials below can be loaded here: exampleMecaSequentialGappyBiaisMetaModel.zip
Features: replace the gappy-POD with the default meta-model and correct the bias
The physical setting, workflow and reduction strategy are almost the same as in the tutorial MecaSequential , hence we only point out the differences here, namely the use of a meta model to replace the gappy POD in the reconstruction of dual quantities. The method is described in the tutorial MecaSequentialGappyMetaModel.
We recall that in the tutorial MecaSequentialGappyMetaModel, the considered meta-models are trained to approximate the following function:
where \(\hat{x}_j\) are the reduced quadrature points selected by the ECM algorithm, and then \(p(\hat{x}_j)\) are values of the HFM snapshots for the dual quantity of interest \(p\). In this tutorial, we want to account for the potential difference between the reference high-fidelity model (HFM) and the reduced-order model (ROM) in the training of this meta-model. Here, a regressor is constructed to approximate the following function:
where now \(\hat{p}(\hat{x}_j)\) is the evaluation of the constructed ROM on the reduced integration points by the constitutive law solver.
We recall that reconstructing the dual-quantities is a post-treatment of the ROM, and that the reduced-order model can be trained and used without needing to reconstruct the dual quantities. Hence, the proposed method (explained in Publications , article 8) consists in first constructing a ROM without training a dual quantity reconstruction algorithm:
Mechanical.CompressOperator(collectionProblemData, operatorPreCompressionData, \
mesh, 1.e-5, listNameDualVarOutput = dualNames, \
listNameDualVarGappyIndicesforECM = ["evrcum"],\
methodDualReconstruction = None)
In this CompressOperator configuration, methodDualReconstruction set to None enables to
compute the ECM without training a dual quantity reconstructor.
Then, the online stage of the ROM is run for the same configurations as the HFM snapshots used in the offline stage. This enables to generate the \(\hat{p}(\hat{x}_j)\) required to train the dual quantity reconstructor meta-model :
onlineData = onlineProblemData.GetOnlineData("U")
timeSequence = np.array(timeSequence)[1:]
onlineDualQuantityAtReducedIntegrationPoints = {}
for i, name in enumerate(dualNames):
onlineDualQuantityAtReducedIntegrationPoints[name] = Mechanical.GetOnlineDualQuantityAtReducedIntegrationPoints(name, onlineData, timeSequence)
reducedIntegrationPoints = operatorCompressionData.GetReducedIntegrationPoints()
dualReconstructionData = Mechanical.LearnDualReconstruction(collectionProblemData, dualNames, reducedIntegrationPoints, methodDualReconstruction = "MetaModel", timeSequenceForDualReconstruction = timeSequence, snapshotsAtReducedIntegrationPoints = onlineDualQuantityAtReducedIntegrationPoints)
operatorCompressionData.SetDualReconstructionData(dualReconstructionData)
The function LearnDualReconstruction is usually called when using CompressOperator
(except when methodDualReconstruction is set to None). In this particular
tutorial, we need to call it directly to prevent us from uselessly recomputing the ECM.
The online stage is then configured is the same classical fashion as in the tutorials MecaSequential or MecaSequentialGappyMetaModel.
Results
In Fig. 13, the quality of the reduced model is illustrated by comparing it to the high-fidelity reference.
Fig. 13 Illustration of the ROM accuracy on the accumulated plasticity p (left) HFM, (right) pointwise difference between the ROM and the HFM.
The gains are not clear with respect to tutorial MecaSequentialGappyMetaModel, but in the industrial cas considered in Publications , article 8, the gains are important.