68 assert(rValuesOnCoarseMesh.size() == mrMechanicsMesh.GetNumNodes());
69 for (
unsigned i=0; i<mpMeshPair->rGetElementsAndWeights().size(); i++)
71 Element<DIM,DIM>& element = *(mrElectricsMesh.GetElement(mpMeshPair->rGetElementsAndWeights()[i].ElementNum));
73 double interpolated_value = 0;
74 for (
unsigned node_index = 0; node_index<element.
GetNumNodes(); node_index++)
77 interpolated_value += rValuesOnFineMesh[global_node_index]*mpMeshPair->rGetElementsAndWeights()[i].Weights(node_index);
79 rValuesOnCoarseMesh[i] = interpolated_value;
85 std::string directory,
86 std::string inputFileNamePrefix)
89 mpMeshPair->SetUpBoxesOnFineMesh();
90 mpMeshPair->ComputeFineElementsAndWeightsForCoarseNodes(
true);
91 assert(mpMeshPair->rGetElementsAndWeights().size()==mrMechanicsMesh.GetNumNodes());
101 "voltage_mechanics_mesh",
105 std::vector<int> columns_id;
106 for (
unsigned var_index = 0; var_index < rVariableNames.size(); var_index++)
108 std::string var_name = rVariableNames[var_index];
116 assert(columns_id.size() == rVariableNames.size());
121 std::vector<double> interpolated_voltages(mrMechanicsMesh.GetNumNodes());
122 Vec voltage_coarse = NULL;
124 for (
unsigned time_step=0; time_step<num_timesteps; time_step++)
126 for (
unsigned var_index = 0; var_index < rVariableNames.size(); var_index++)
128 std::string var_name = rVariableNames[var_index];
133 InterpolateOnCoarseMesh(interpolated_voltages, voltage_repl);
135 if (voltage_coarse != NULL)
141 p_writer->
PutVector(columns_id[var_index], voltage_coarse);
147 if (voltage_coarse != NULL)
162 "voltage_mechanics_mesh",