1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2025-04-16 13:49:19 +02:00

Adapting determinants

This commit is contained in:
Anthony Scemama 2024-12-29 23:28:33 +01:00
parent 52eae38230
commit 2cea87a123
2 changed files with 14 additions and 10 deletions

View File

@ -554,7 +554,7 @@ pub fn read_{group_l}_{element_l}(&self, offset: usize, buffer_size:usize) -> Re
let offset: i64 = offset.try_into().expect("try_into failed in read_{group}_{element} (offset)");
let mut buffer_size_read: i64 = buffer_size.try_into().expect("try_into failed in read_{group}_{element} (buffer_size)");
let rc = unsafe {{ c::trexio_read_safe_{group}_{element}(self.ptr,
offset, &mut buffer_size_read, idx_ptr, buffer_size_read, val_ptr, buffer_size_read)
offset, &mut buffer_size_read, idx_ptr, idx.len().try_into().unwrap(), val_ptr, val.len().try_into().unwrap())
}};
let rc = match ExitCode::from(rc) {{
ExitCode::End => ExitCode::to_c(&ExitCode::Success),
@ -605,9 +605,9 @@ pub fn write_{group_l}_{element_l}(&self, offset: usize, data: &[{typ}]) -> Resu
}}
let size_max: i64 = data.len().try_into().expect("try_into failed in write_{group}_{element} (size_max)");
let size_max_val: i64 = size_max / ({size}+1);
let size_max_idx: i64 = {size} * size_max_val;
let buffer_size = size_max_val;
let size_max_val: i64 = val.len().try_into().expect("try_into failed in write_{group}_{element} (size_max)");
let size_max_idx: i64 = idx.len().try_into().expect("try_into failed in write_{group}_{element} (size_max)");
let buffer_size = size_max;
let idx_ptr = idx.as_ptr() as *const i32;
let val_ptr = val.as_ptr() as *const f64;
let offset: i64 = offset.try_into().expect("try_into failed in write_{group}_{element} (offset)");

View File

@ -95,14 +95,18 @@ fn write(file_name: &str, back_end: BackEnd) {
}
// Determinants
let nup = 8;
let ndn = 6;
trex_file.write_electron_up_num(nup).unwrap();
trex_file.write_electron_dn_num(ndn).unwrap();
let det_num = 50;
let mut det_list = Vec::with_capacity(det_num);
let mut det_occ_alpha = [ 0, 1, 2, 3, 75, 127, 128, 142 ];
let mut det_occ_beta = [ 0, 2, 3, 79, 80, 138 ];
let mut det_list = Vec::with_capacity(det_num*6);
for i in 0..det_num {
let mut d = [0i64; 6];
for j in 0..6 {
d[j] = 6 * (i as i64) + (j as i64);
}
det_list.push(Bitfield::from_vec(&d));
let (alpha, _) = Bitfield::from(3, &det_occ_alpha);
let (beta, _) = Bitfield::from(3, &det_occ_beta);
det_list.push(Bitfield::from_alpha_beta(&alpha, &beta));
}
let n_buffers = 5;