MCPcopy Create free account
hub / github.com/IBAMR/IBAMR / initializeLevelData

Method initializeLevelData

src/IB/IMPMethod.cpp:990–1045  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

988} // endDataRedistribution
989
990void
991IMPMethod::initializeLevelData(Pointer<BasePatchHierarchy<NDIM>> hierarchy,
992 int level_number,
993 double init_data_time,
994 bool can_be_refined,
995 bool initial_time,
996 Pointer<BasePatchLevel<NDIM>> old_level,
997 bool allocate_data)
998{
999 const int finest_hier_level = hierarchy->getFinestLevelNumber();
1000 d_l_data_manager->setPatchHierarchy(hierarchy);
1001 d_l_data_manager->setPatchLevels(0, finest_hier_level);
1002 d_l_data_manager->initializeLevelData(
1003 hierarchy, level_number, init_data_time, can_be_refined, initial_time, old_level, allocate_data);
1004 if (initial_time && d_l_data_manager->levelContainsLagrangianData(level_number))
1005 {
1006 d_l_data_manager->createLData("Grad_U", level_number, NDIM * NDIM, /*manage_data*/ true);
1007 Pointer<LData> F_data = d_l_data_manager->createLData("F",
1008 level_number,
1009 NDIM * NDIM,
1010 /*manage_data*/ true);
1011 Pointer<LData> tau_data = d_l_data_manager->createLData("tau", level_number, NDIM * NDIM, /*manage_data*/ true);
1012 if (d_silo_writer)
1013 {
1014 d_silo_writer->registerVariableData("F0", F_data, 0 * NDIM, NDIM, level_number);
1015 d_silo_writer->registerVariableData("F1", F_data, 1 * NDIM, NDIM, level_number);
1016#if (NDIM == 3)
1017 d_silo_writer->registerVariableData("F2", F_data, 2 * NDIM, NDIM, level_number);
1018#endif
1019 d_silo_writer->registerVariableData("tau0", tau_data, 0 * NDIM, NDIM, level_number);
1020 d_silo_writer->registerVariableData("tau1", tau_data, 1 * NDIM, NDIM, level_number);
1021#if (NDIM == 3)
1022 d_silo_writer->registerVariableData("tau2", tau_data, 2 * NDIM, NDIM, level_number);
1023#endif
1024 }
1025
1026 // Initialize the deformation gradient and Kirchhoff stress.
1027 const Pointer<LMesh> mesh = d_l_data_manager->getLMesh(level_number);
1028 const std::vector<LNode*>& local_nodes = mesh->getLocalNodes();
1029 boost::multi_array_ref<double, 2>& F_array = *F_data->getLocalFormVecArray();
1030 boost::multi_array_ref<double, 2>& tau_array = *tau_data->getLocalFormVecArray();
1031 for (const auto& node_idx : local_nodes)
1032 {
1033 const int idx = node_idx->getLocalPETScIndex();
1034 for (int i = 0; i < NDIM; ++i)
1035 {
1036 for (int j = 0; j < NDIM; ++j)
1037 {
1038 F_array[idx][NDIM * i + j] = (i == j ? 1.0 : 0.0);
1039 tau_array[idx][NDIM * i + j] = 0.0;
1040 }
1041 }
1042 }
1043 }
1044 return;
1045} // initializeLevelData
1046
1047void

Callers

nothing calls this directly

Calls 9

setPatchLevelsMethod · 0.80
createLDataMethod · 0.80
registerVariableDataMethod · 0.80
getLMeshMethod · 0.80
getLocalFormVecArrayMethod · 0.80
getLocalPETScIndexMethod · 0.80
getFinestLevelNumberMethod · 0.45
setPatchHierarchyMethod · 0.45

Tested by

no test coverage detected