void Delamination :: appendInputRecords(DynamicDataReader &oDR) { ///@todo almost everything is copied from EnrichmentItem :: giveInputRecord, should be written in a better way DynamicInputRecord *eiRec = new DynamicInputRecord(); FEMComponent :: giveInputRecord(* eiRec); eiRec->setField(mEnrFrontIndex, _IFT_EnrichmentItem_front); eiRec->setField(mPropLawIndex, _IFT_EnrichmentItem_propagationlaw); // Delamination specific records eiRec->setField(this->interfaceNum, _IFT_Delamination_interfacenum); eiRec->setField(this->crossSectionNum, _IFT_Delamination_csnum); eiRec->setField(this->matNum, _IFT_Delamination_CohesiveZoneMaterial); eiRec->setField(this->initiationFactor, _IFT_Delamination_initiationFactor); eiRec->setField(this->initiationRadius, _IFT_Delamination_initiationRadius); if ( !eiRec->hasField(_IFT_Delamination_averageStresses) ) { recoverStresses = false; } oDR.insertInputRecord(DataReader :: IR_enrichItemRec, eiRec); // Enrichment function DynamicInputRecord *efRec = new DynamicInputRecord(); mpEnrichmentFunc->giveInputRecord(* efRec); oDR.insertInputRecord(DataReader :: IR_enrichFuncRec, efRec); // Enrichment domain DynamicInputRecord *geoRec = new DynamicInputRecord(); geoRec->setRecordKeywordField(this->giveInputRecordName(), 1); IntArray idList; idList.resize( dofManList.size() ); for ( size_t i = 0; i < dofManList.size(); i++ ) { idList.at(i + 1) = dofManList [ i ]; } geoRec->setField(idList, _IFT_ListBasedEI_list); oDR.insertInputRecord(DataReader :: IR_geoRec, geoRec); // Enrichment front if ( mEnrFrontIndex != 0 ) { DynamicInputRecord *efrRecStart = new DynamicInputRecord(); mpEnrichmentFrontStart->giveInputRecord(* efrRecStart); oDR.insertInputRecord(DataReader :: IR_enrichFrontRec, efrRecStart); DynamicInputRecord *efrRecEnd = new DynamicInputRecord(); mpEnrichmentFrontEnd->giveInputRecord(* efrRecEnd); oDR.insertInputRecord(DataReader :: IR_enrichFrontRec, efrRecEnd); } if ( mPropLawIndex != 0 ) { // Propagation law DynamicInputRecord *plRec = new DynamicInputRecord(); this->mpPropagationLaw->giveInputRecord(* plRec); oDR.insertInputRecord(DataReader :: IR_propagationLawRec, plRec); } }