You have to be a bit careful - unfortunately, C++ has one of the most
convoluted rules when objects are zero initialized or not.
As a rule of thumb:
* whenever you are working with a plain "double", "float", "int",
etc. it is best to explicitly initialize the variable (because C++ in
most cases does not initialize the variable for you):
unsigned int i = 0;
double d = 0.;
float f = 0.;
* in case of a "container" like std::vector, dealii::Vector,
dealii::Tensor elements are default initialized:
dealii::Tensor<1, dim> t; // zeroes elements
dealii::Vector<double> V;
V.reinit(10); // zeroes elements
std::vector<double> v;
v.resize(10); // zeroes elements
I do not understand your second question :-(
Best,
Matthias