NameDescriptorForTensorFieldDerivative createDescriptorForFieldDerivative(NameDescriptorForTensorFieldImpl field, int[] orders) { //todo readLock? writeLock.lock(); try { NameDescriptorForTensorFieldDerivative result = new NameDescriptorForTensorFieldDerivative(generateNewName(), orders, field); registerDescriptor(result); return result; } finally { writeLock.unlock(); } }
readLock.lock(); try { int newNameId = generateNewName();
knownND = fromStructure.get(key); if (knownND == null) { //Double check int name = generateNewName(); NameDescriptor descriptor = createDescriptor(sname, structureOfIndices, name); if (descriptor instanceof NameDescriptorForMetricAndKronecker) {