diff options
Diffstat (limited to 'src/kondo.h')
-rw-r--r-- | src/kondo.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/kondo.h b/src/kondo.h new file mode 100644 index 0000000..23756ad --- /dev/null +++ b/src/kondo.h @@ -0,0 +1,76 @@ +/* +Copyright 2015 Ian Jauslin + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* Generate configuration files specific to the Kondo model */ + +#ifndef KONDO_H +#define KONDO_H + +#include "types.h" + +// generate configuration file +int kondo_generate_conf(Str_Array* str_args, int box_count); + +// generate the Kondo fields table +int kondo_fields_table(int box_count, Char_Array* str_fields, Fields_Table* fields); + +// generate Kondo symbols +int kondo_symbols(Char_Array* str_symbols, int box_count, Fields_Table* fields); +// generate Kondo symbols (older method: one symbol for each scalar product) +int kondo_symbols_scalarprod(Char_Array* str_symbols, int box_count, Fields_Table* fields); + +// generate Kondo groups (groups of independent variables) +int kondo_groups(Char_Array* str_groups, int box_count); + +// generate Kondo identities +int kondo_identities(Char_Array* str_identities); + +// convert the Kondo propagator +int kondo_propagator(Char_Array str_kondo_propagator, Char_Array* str_propagator); + +// read a product of polynomials +int parse_kondo_polynomial_factors(Char_Array str_polynomial, Polynomial* output, Fields_Table fields); + +// convert Kondo input polynomial +int kondo_input_polynomial(Char_Array str_kondo_polynomial, Char_Array* str_polynomial, Fields_Table fields, int box_count); + +// convert the Kondo idtable +int kondo_idtable(Char_Array str_kondo_idtable, Char_Array* str_idtable, Fields_Table fields); + +// read a kondo polynomial and convert it to a polynomial expressed in terms of the fields in the fields table +int parse_kondo_polynomial_str(char* str_polynomial, Polynomial* output, Fields_Table fields); +int parse_kondo_polynomial(Char_Array kondo_polynomial_str, Polynomial* polynomial, Fields_Table fields); + +// read Aij, Bij, hi where i is a space dimension and j is a box index +int kondo_resolve_ABh(char* str, Polynomial* output, Fields_Table fields); +// read a Kondo scalar product +int kondo_resolve_scalar_prod(char* str, Polynomial* output, Fields_Table fields); +// compute a scalar product of polynomial vectors +int kondo_polynomial_scalar_product(Polynomial poly_vect1[3], Polynomial poly_vect2[3], Polynomial* output, Fields_Table fields); +// compute a vector product of polynomial vectors +int kondo_polynomial_vector_product(Polynomial (*poly_vect1)[3], Polynomial poly_vect2[3], Fields_Table fields); +// compute the 3 components of a kondo vector +int kondo_polynomial_vector(int offset, int index, Polynomial (*polys)[3], Fields_Table fields); +// read a scalar product of symbols +int kondo_resolve_scalar_prod_symbols(char* str, Polynomial* output); + +// get the offset and index of a monomial term +int get_offset_index(char* str, int* offset, int* index); +// get the offsets and index of a scalar product +int get_offsets_index(char* str, int* offset1, int* offset2, int* index); +// get the index of the symbol corresponding to a given string +int get_symbol_index(char* str); +#endif |